5.4への更新後、私の関係は正しく動作しません。調べた後、Laravelは foreignkeyの名前を探しています:user_id
,post_id
などの代わりに、user_user_id
またはpost_post_id
の代わりにL 5.3が使用されていました。また、ピボットテーブルのプライマリキーをtag_tag_idなどに更新して、再び動作させる必要がありました。Laravel 5.3から5.4の関係foreignKeyの問題
この新しい条約に従って私のテーブルの外部キーの名前が更新されましたが、現在は動作しています。しかし、私はまだ、なぜ、どのように変化し、どこから来ているのかを知りたいです。
ありがとうございます!
はありません、私は、ユーザーモデル自体に$主キーを設定します。そして、私のポストモデルで次のように関係をロードします:public function user() { return $ this-> belongsTo(User :: class); } – Jorn
$ primaryKeyを設定することは、問題の原因となっているgetKeyNameメソッドをオーバーライドすることと同じです。 – Hamoud
しかし、$ primaryKeyを設定しなければ、私の主キーが 'user_id'なので、ユーザテーブルの 'id'カラムを探しています。 QLSTATE [42S22]:列が見つからない:1054 'where句'の 'id'列が不明です(SQL:select * from 'users' from' id' = 26 limit 1)。つまり、すべての主キーを「id」に変更する必要があります。次に、primaryKeyをカスタム値に設定することは役に立たないでしょう – Jorn