2 回答
TA貢獻1963條經(jīng)驗 獲得超6個贊
在代碼中
GET|HEAD | admin/products/{}/edit應該用一個值填充,類似于{}{item}
如果在控制器方法中,您有如下代碼:ProductsController@edit
public function edit(Request $request, Item $item){
}第二個參數(shù)應該 1) 存在,2) 應該與路由 {variable} 中的值匹配,所以如果你在方法參數(shù)中有變量,那么它應該是Item $item{item}item{something}public function edit(Request $request, Item $something);...
請注意,請求$request,在方法中不是必需的;
我想補充一點,如果找不到該項目,這樣做將導致404,該項目將根據(jù)該項目模型中的方法獲取,因此,如果您的物品中有類似的東西Item $itemgetRouteKeyName()model
public function getRouteKeyName() {
return 'slug';
}該列將從數(shù)據(jù)庫中讀取該項目。同樣,如果您沒有使用該方法,它將使用ID。slug
因此,總而言之,whould在那里與您的控制器的該模型的參數(shù)相匹配,其中默認情況下是產(chǎn)品模型的ID,除非您定義方法,否則該模型是Eloquent模型web{some_value}Product $some_valuesome_valuegetRouteKeyName()Products
Laravel Controllers Dependency Injection希望能解決它!
TA貢獻1777條經(jīng)驗 獲得超10個贊
正如Harven所建議的那樣,問題在于資源路由沒有正確定義。刪除反斜杠后,一切開始工作:
Route::resource('admin/products', 'ProductsController')->middleware('auth');在此之后,路由列表已正確填寫,并且路由名稱也已正確生成
| GET|HEAD| admin/products/{product}/edit | products.edit | App\Http\Controllers\ProductsController@edit | web,auth |
- 2 回答
- 0 關注
- 208 瀏覽
添加回答
舉報
