Laravel 5.2 Eloquent hasOne关系不起作用

时间:2016-07-15 18:20:58

标签: php laravel eloquent

我的聊天模式中有关系

public function user() {
    return $this->hasOne(User::class,'id','writers_id');
}

想在我的控制器中使用它。我尝试了很多方法,但没有人工作。只是给出最后一个尝试示例(结果 - 空白页面)。

print_r($chat = Chat::where('id', 1)->first()->user);

任何人都可以帮助我吗?谢谢!我真的不明白,Eloquent之前使用过简单的数据库查询器,但有人说我应该在模型中做每个数据库的东西。这是对的吗?抱歉我的英语不好!

2 个答案:

答案 0 :(得分:1)

首先由@Vohuman提及

return $this->hasOne('App\User', 'id', 'writers_id');

使用时:

Chat::where('id', 1)->first()->user()->first()->attribute

答案 1 :(得分:1)

请看这里:https://laravel.com/docs/master/eloquent-relationships#one-to-one

App\Chat.php

public function writer()
{
    return $this->hasOne('App\User','id','writers_id');
}

定义关系。然后在任何控制器:

顶部:

use App\User;

并在方法内部:

$writer = User::find($user_id)->writer;

调试它在上面的行前添加一行。

dd($user_id,User::find($user_id),$writer);