合并2个表并获取其他表值(如果存在)(Laravel)

时间:2015-12-30 02:41:12

标签: php mysql laravel

我有2张桌子

levels
--------
id
owner_id
level
name

owner
--------------
id
name

所有者可以在levels table上添加自己的关卡名称。默认情况下,level表有10行owner_id = 0

假设所有者将level 2值添加到levels table。如何仍然将所有(10行)设置为默认值,但将level 2默认值更改为使用所有者值?

我尝试过使用:

$query = Levels:with('owner')->get();

但它只获得没有默认值的所有者值。

Curernt解决方案:

$lists = Level::where('owner_id', $owner_id)->lists('level');

$owner= Level::where('owner_id', $owner_id)->get();
$default = Level::whereNotIn('level', $lists)->get();

$levels = $default->merge($owner)->sortBy('level')->all();

return $levels;

感谢。

0 个答案:

没有答案