laravel中的一对一关系(错误)

时间:2016-09-01 08:20:29

标签: php laravel laravel-routing

我是Laravel的新手,当我练习时我得到一个错误 at HandleExceptions-> handleError(' 8','尝试获取非对象的属性' C:\ xampp \ htdocs \ cms \ app \ routes.php第144行中的Http \ routes.php',' 144',数组(' id' =>' 1'))

我的 routes.php 文件

Route::get('/user/{id}/post',function ($id){
  return  User::find($id)->post->title;

});

在我的 User.php 文件

public function post(){
    return $this->hasOne('App\Post');
}

我有两个表1个帖子2个用户
我也有邮政课程enter image description here 我也谷歌和搜索不同的网站,但无法理解。 请我,如何摆脱这个错误。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

您的帖子是一个用户。 这种生活是“一对多”的关系。 因此,您必须在模态用户中使用此方法:

 public function posts()
 {
    return $this->hasMany('App\Post');
 }

一对多是来自帖子的数组。 对于show resualt你必须使用foreach:

  $comments = App\Post::find(1)->comments;
  foreach ($comments as $comment) {
          $comment->title ;
  }

并阅读此链接:https://laravel.com/docs/5.2/eloquent-relationships#one-to-many

答案 1 :(得分:0)

1:你是否保持这种关系是一对一的; 2:如果你提到添加主键和外键并在Post模型中添加此功能。

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