0
私は、ユーザーが投稿を評価できるブログタイプのウェブサイトを実装しようとしています。だから、関係がこのようなものです:Laravel関係からサブテーブル
Blog -> blog_links; To Many fk = blog_id
User -> blog_links; To Many fk = user_id
私はこれらのソリューションを試みたし、毎回異なるエラーを取得:
User::hasManyThrough(Blog::class, BlogLink::class);
動作しませんでしたので、私は、クエリの範囲を試してみました:
をscopeWithLinksAndResorts($query) {
return $query->with(['resorts' => function($q) {
$q->ordered()->withLinks();
}]);
}
これは結果を返すようには見えません。だから私はここで間違っているのか分からない。そして、ここでテーブルの例です:
ブログ
id Title Text
1 Test This is a test blog
ユーザー
id email
1 [email protected]
blog_links
私は、ユーザーが評価したブログや自分の格付けを取得したい、このから今id blog_id user_id rating
1 1 1 4
。しかし、私が言ったように私は結果が得られません。誰でも手伝うことができますか?あなたのUserモデルで
素晴らしい作品です。あなたが属していることが分かっていないのですか?サブテーブルを介して多くのことが考えられました.ManyThroughがあったのですか?それとも別の状況で使用されていますか? – Byakku
多対多のリレーションシップがある場合は、ピボットテーブルが必要で、モデルにbelongsToManyを設定する必要があります(https://laravel.com/docs/5.4/eloquent-relationships#many-to-many)。 'has-many-through '関係は、中間関係を介して遠方の関係にアクセスするための便利なショートカットを提供します.'(https://laravel.com/docs/5.4/eloquent-relationships#has-many-through) – Nerea