コンテンツローカリゼーションが必要なため、ローカライズ可能な各モデルのデータは、ベースとローカライズ可能なフィールドを持つ2つのテーブルに分割されます。だから私はコードクリーンのための結合でグローバルスコープを追加しました。しかし今、別のローカライズされたテーブルに参加しようとすると、このエラーが発生します。Laravelグローバルスコープと複数の結合
Undefined table: 7 ERROR: missing FROM-clause entry for table "posts"
トラブルコード:
$news = Post::orderIdDesc()
->innerJoin('organizations', 'organization','id')
->where('posts.organization', '=', $orgId)
->select('*')
->take(3)
->get();
戻り、このSQL:
select * from "posts_uk"
inner join "organizations" on "posts"."organization" = "organizations"."id"
inner join "organizations_uk" on "organizations_uk"."id" = "organizations"."id"
inner join "posts" on "posts_uk"."id" = "posts"."id"
where "posts"."organization" = 1
order by "posts_uk"."id" desc limit 3
あなたが見ることができるように、Postモデルの他の部分は、クエリの最後に追加し、グローバルスコープに参加しました、上記のエラーが発生します。
多分、グローバルスコープの先頭にジョインを追加する方法や、他の解決方法が適用可能な方法があります。
Thxを
私は同じ問題を持っている:
が続いて最初に参加する必要がありますいずれかがあなたのスコープに参加した後にメソッドを呼び出します。Anzeの答えに構築する、私は方法を追加しました。結局それをどうやって解決しましたか? – Erin