【问题标题】:How to check and get the result if the table contain user id in laravel如果表包含laravel中的用户ID,如何检查并获取结果
【发布时间】:2016-12-24 20:49:52
【问题描述】:

我已经创建了用户和表列之间的关系,我想显示属于特定用户的表列表。比如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 的新手。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    如果用户只有一张表,如果Roundtable 模型有user_id,你可以使用这个查询:

    Roundtable::where('user_id', $id)->first();
    

    它会给你用户的表或null如果表不存在。

    另一种获取表格的方法是使用关系:

    auth()->user()->roundTable;
    

    【讨论】:

    • 它返回空值,但是当我从修补程序中检查“ App\Roundtable::find(1)->user ”时,它返回了正确的用户信息,所以这意味着关系正确存在?但不知道为什么它返回 null。
    • 这意味着您已经在Roundtable 模型中定义了belongsTo() 关系。现在您还必须在 User 模型中定义 hasOne() 关系。
    【解决方案2】:

    嗯,我找到了解决方案,只需将代码更改为

    $id=Auth::user()->id;
        $table= Roundtable::where('user_id',$id)->get();
        return view('users.tables.show')->withTables($table);
    

    那么结果就会正确返回。

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多