2 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
模型綁定的控制器方法的參數(shù)未正確命名。
您的路線參數(shù)kittran
不是kittrans
;資源路由將使用資源的單數(shù)名稱作為路由參數(shù)。您必須為綁定匹配該名稱:
public function update(Request $request, Kittrans $kittran)
如果沒有該匹配,您只會(huì)注入一個(gè)新的模型實(shí)例,而不是發(fā)生模型綁定。
您可以運(yùn)行route:list
命令來查看您的路線是如何定義的:
php artisan route:list
“Laravel 會(huì)自動(dòng)解析路由或控制器操作中定義的 Eloquent 模型,其類型提示的變量名稱與路由段名稱匹配?!?nbsp;- Laravel 6.x 文檔 - 路由 - 路由模型綁定 - 隱式綁定
“默認(rèn)情況下,
Route::resource
將根據(jù)資源名稱的“單一化”版本為您的資源路由創(chuàng)建路由參數(shù)?!?nbsp;- Laravel 6.x 文檔 - 控制器 - 資源控制器 - 命名資源路由參數(shù)
如果您想為此資源覆蓋此行為,并將kittrans
其用作參數(shù)名稱,您也可以這樣做,那么您無需更改控制器方法的簽名:
Route::resource('kittrans', 'Kittrans\KittransController', [
'except'=> ['index'],
'parameters' => ['kittrans' => 'kittrans'],
]);

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
我相信您的模型綁定不正確,當(dāng)您的模型綁定錯(cuò)誤時(shí),Kittrans 對(duì)象將為空并且不會(huì)保存到數(shù)據(jù)庫中,當(dāng)您填充并保存時(shí)它將保存一個(gè)新對(duì)象。要解決錯(cuò)誤的模型綁定,請(qǐng)將其添加到RouteServiceProvider.php.
use App\Kittrans;
public function boot()
{
parent::boot();
Route::model('kittrans', Kittrans::class);
}
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)