我有表格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
这有效,但感觉不专业。在控制器中有什么办法吗?
答案 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
如果您可以提供更多详细信息,我会修改我的回答以正确回答您的问题。