更新至5.4後,我的關係不再正常工作。經過檢查,我發現Laravel現在正在尋找不同的 foreignKey名稱:user_user_id
或post_post_id
而不是user_id
,post_id
等。這是工作,直到L 5.3。我也不得不更新一些數據透視tabels primarykey到tag_tag_id等,以便讓他們再次工作。Laravel 5.3至5.4關係foreignKey issue
我更新了我的表foreignkey名稱根據這個新的約定,現在它的工作。但我仍然想知道爲什麼以及如何改變以及它來自哪裏。
謝謝!
沒有,我只設置$的PrimaryKey在用戶模式本身。並加載我的後期模型中的關係,如下所示:public function user() { return $ this-> belongsTo(User :: class); } – Jorn
設置$ primaryKey與覆蓋引起問題的getKeyName方法相同。 – Hamoud
好的,但如果我沒有設置$ primaryKey,它正在我的用戶表中尋找'id'列,它不會找到,因爲我的主鍵是'user_id'。 QLSTATE [42S22]:未找到列:1054'where子句'中的未知列'id'(SQL:select * from'users',其中id' = 26 limit 1)。這意味着我必須將所有主鍵都改爲'id'。然後將primaryKey設置爲自定義值將無用 – Jorn