比较Laravel / Eloquent中的两个模型

时间:2018-04-18 11:15:20

标签: php laravel

我有表格item_list和表格users

我的数据透视表allowed_items包含来自item_list的item_id和来自用户表的user_id

我有一些复选框列表,当项目和用户在数据透视表中时应该检查,如果没有,则不加以检查。

我目前正在这样做:

$items = item_list::all();
$allowed_items = allowed_items->where("user_id",$user_id")->get();
foreach ($allowed_item as $allow)
{
$allow_array[$allow->item_id] = true;
}

然后我返回视图并检查项目是否存在如下:

@foreach($items as $item)
<input type="checkbox" value="{{$item->id}} 
{{array_key_exists($item->id,$allow_array") ? "checked":" "}}>
@endforeach

这有效,但感觉不专业。在控制器中有什么办法吗?

1 个答案:

答案 0 :(得分:1)

如果你想要一个更干净的代码,你可以在Item控制器中进行一个新的方法调用,例如isAllowed将返回一个布尔函数。

项目控制器

public function isAllowed(){
// check if exists and return yes/no
}

<强>模板

@foreach($items as $item)
   <input type="checkbox" value="{{$item->id}} 
   {{$item->isAllowed() ? "checked":" "}}>
@endforeach

如果您可以提供更多详细信息,我会修改我的回答以正确回答您的问题。