拉拉维尔 5.2 雄辩有一段关系不起作用


Laravel 5.2 Eloquent hasOne relationship doesn't work

我的聊天模型中有关系

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

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

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

谁能帮我?谢谢!我真的不明白Eloquent,以前使用过简单的数据库查询器,但是有人说我应该在模型中做每个数据库的东西。正确吗?对不起,我的英语很差!

@Vohuman提到的第一个

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

使用它时:

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

看这里: 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);