Laravelがピボットテーブルを単数形として質問するのはなぜですか?それを複数形と呼ぶように修正するには?Laravelピボットテーブルが複数でない
データベーステーブル
- ユーザー(IDなど)
- キャンペーン(IDなど)
- campaign_users(user_idは、CAMPAIGN_ID)
コード
キャンペーンmodel、およびcampaign_userモデルはかなり空で、職人によって生成されます。しかし、ここでは、Userモデルでキャンペーンに私のユーザ関係、以下のとおりです。
ここpublic function playing_campaigns()
{
return $this->belongsToMany('Sagohamnen\campaign\campaign');
}
私は、ユーザーがの一部である、キャンペーンを取得するためにDBを呼び出します。
$user = user::with(['playing_campaigns'])->where('id', $id)->get();
SQLエラー
SQLSTATE [42S02]:基本テーブルまたはビューが見つかりません:1146テーブル 'sagohamnen.campaign_user'が存在しません(SQL:select
campaigns
。*、campaign_user
。user_id
をpivot_user_id
,campaign_user
とする。campaign_id
をpivot_campaign_id
からcampaigns
を内側結合campaign_user
をcampaigns
に設定します。id
=campaign_user
。campaign_id
ここで、campaign_user
。 (1))
[多対多のドキュメント](https://laravel.com/docs/5.2/eloquent-relationships#many-to-many) – Carlos
お返事ありがとうございました。ドキュメントの権利を理解している場合は、テーブルの名前がLaravelの規則に従っている場合は、2番目の引数を追加する必要はありません。 「Eloquentは2つの関連するモデル名をアルファベット順に結合する」私は2番目の議論を加えて、変化が起きたかどうかを調べました。結果は空の配列、hmでした。 – Olof84
あなたのテーブルは 'campaign_user'なのでアルファベット順です。空の配列が返される場合は、使用しているユーザーIDにデータが挿入されていることを確認してください。また、DB上の一般的なログをオンにし、実行されているクエリーを見て、意味をなさないことを確認するのに役立ちます。 – user3158900