所以。我已經深入搜索過這個問題,沒有找到解決方案,但我錯誤地解決了它。
表用戶:
$table->id('user_id'); // 我希望它像這樣命名,特別是假設我是個瘋子。
表什么:
$table->foreignId('user_id')->constrained('users');
//現在這應該可以了,但它沒有,錯誤似乎是它在“用戶”表中查找 id 而不是 user_id。
我所做的是: constrained('users', 'user_id')
//現在我似乎找不到任何關于此的檔案,確切地知道它是否可以,但它有效。
我想補充一點,我是編程新手,所以問題是,這樣離開可以嗎?還是我應該用舊方法: ->references('user_id')->on('users') ?
uj5u.com熱心網友回復:
看看約束函式在幕后做了什么:
public function constrained($table = null, $column = 'id')
{
return $this->references($column)->on($table ?? Str::plural(Str::beforeLast($this->name, '_'.$column)));
}
它實際上使用相同的舊方式。
您會注意到如果未提供 id 列的默認值將是“id”,因此正確的答案是,將自定義id列作為第二個引數傳遞將解決此問題。
簡而言之,你做對了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434983.html
上一篇:Laravel應用程式:我需要一個新的子域的新應用程式嗎?
下一篇:Laravel9與Vue2
