没有获得Laravel外键表[ERROR]

时间:2017-06-26 10:45:12

标签: php mysql laravel eloquent

我在Controller中有这个功能:

  /**
    *
    * Edit Registration
    *
    */
    public function edit(Registration $id)
    {
      $logs = Log::where('registration_id', $id->id)->users()->get();

      dd($logs);
      return view('registrations_edit', ['registration' => $id, 'log' => $logs]);
    }

文档说我可以打电话

Log::where('registration_id', $id->id)->users()->get();

在模型中定义users()时。

 public function users(){
   return $this->belongsTo('App\User', 'id', 'user_id');
 }

但是当我在Controller中调用users()时,我总是得到

调用未定义的方法Illuminate \ Database \ Query \ Builder :: users()

我做错了什么?

亲切的问候

2 个答案:

答案 0 :(得分:0)

我想你可以试试这个:

public function edit(Registration $id)
    {
      $logs = Log::with('users')->where('registration_id', $id->id)->get();

      dd($logs);
      return view('registrations_edit', ['registration' => $id, 'log' => $logs]);
    }

希望这对你有用

答案 1 :(得分:0)

如果你的关系写得正确,试试这个:

$logs = Log::where('registration_id', $id->id)->users->get();