Laravel: отношения «многие к одному» - PullRequest
0 голосов
/ 22 декабря 2019

Я пытаюсь отобразить много обзоров на основе одного поста. Я могу отображать отзывы как обычно, однако я хочу отображать их на основе отношений.

Review.php

class Review extends Model
{
    function mycmp()
    {
        return $this->hasMany('App\Post', 'posts_title', 'title');
    }
}

Post.php

class Post extends Model
{
    protected $tables='posts';


}

PostController.php

public function show($id)
{
    $post = Post::find($id);
    $review = Review::find(1)->mycmp;
    return view('posts.show', compact('post', 'review'));
}

Что не так с кодом выше. Этот код возвращается как «НЕТ сообщений найдено».

идентификатор таблицы сообщений posts_title и т. Д.

отзывы ID таблицы и т. Д.

1 Ответ

0 голосов
/ 22 декабря 2019

В вашем обзоре Модель

class Review extends Model
{
    protected $tables='reviews';
    function post()
    {
        return $this->hasMany('App\Post', 'posts_title', 'title');
    }
}

В вашем посте Модель

class Post extends Model
{
    protected $tables='posts';
    function review()
    {
        return $this->hasMany('App\Review');
    }

}

В вашем пост-контроллере

public function show($id)
{
    $post = Post::where('id',$id)->get(); //EDIT
    $review = Review::with('post')->get();
    return view('posts.show', compact('post', 'review'));
}

...