我在user和table列之间创建了一个关系,我想显示属于特定用户的表列表。例如,如果系统中记录了user_id 1,则系统将仅显示属于他的信息,即表1。
这是我的控制器代码:
public function show(Request $request){
$user_id=Auth::user()->id;
$table= Roundtable::findOrFail($user_id);
return view('users.tables.show')->withTables($table);
}
我知道$table= Roundtable::findOrFail($user_id);
不正确,但我不知道该怎么办,因为我是laravel的新手。
答案 0 :(得分:0)
如果用户只有一个表,并且Roundtable
模型有user_id
,您可以使用此查询:
Roundtable::where('user_id', $id)->first();
如果表格不存在,它会为您提供用户表格或null
。
获取表的另一种方法是使用relation:
auth()->user()->roundTable;
答案 1 :(得分:0)
我找到了解决方案,只需要将代码更改为
$id=Auth::user()->id;
$table= Roundtable::where('user_id',$id)->get();
return view('users.tables.show')->withTables($table);
然后结果将正确返回。