Laravel 4 使用keyBy方法内部和雄辩的方法
我要用keyBy方法里面的和方法里面的雄辩。像这样:Laravel 4 使用keyBy方法内部和雄辩的方法,laravel-4,eloquent,Laravel 4,Eloquent,我要用keyBy方法里面的和方法里面的雄辩。像这样: $settings = $settings->with( array('languages' => function($query) { $query->get()->keyBy('languages_language_id'); }) )->get()->keyBy('setting_key'); 我该怎么做?谢谢。最后我用这个: $settings = $set
$settings = $settings->with(
array('languages' => function($query)
{
$query->get()->keyBy('languages_language_id');
})
)->get()->keyBy('setting_key');
我该怎么做?谢谢。最后我用这个:
$settings = $settings->with('languages')->get()->keyBy('setting_key')->toArray();
foreach ($settings as $keySetting => $setting)
{
$languages = $setting['languages'];
$settings[$keySetting]['languages'] = array();
foreach ($languages as $lang)
{
$settings[$keySetting]['languages'][$lang['languages_language_id']] = $lang;
}
}
您不能在
with
子句中直接执行此操作,而是可以使用keyBy
版本覆盖集合:
foreach ($settings as $keySetting => $setting)
{
$settings[$keySettings]->languages = $settings[$keySettings]->languages->keyBy('languages_language_id');
}
正如您所能做的那样,您仍然需要迭代结果并逐个重新排序。这只是一个更干净的版本,它使用了您已经在做的keyBy