close
這是laravel 的 resource controller 的一個小雷
先用artisan 產生有model binnding 的controller
$ php artisan make:controller Stock/ProductsController --resource --model=Stock/Model/Products
在controller generate以後
產生的controller 裡面會有一些method
public function edit(Products $products)
public function update(Request $request, Products $products)
...
這些mothed會幫你把從網址傳入的kye 拿來搜尋model 裡面的資料 看你設定哪一個欄位是primerykey
之後直接在method裡面應用。
但是route卻給你產生
products/{product}/edit
products/{product}
...
大家注意到了嗎, 產生的controller 裡面幫你綁定的參數名稱是products 不是product
一個有s 一個沒有s
products 跟 product 兩邊會對不起來 ,所以function裡面什麼都抓不到。
一定要把參數改成product才能從綁定的model拿到東西
這是一個小雷
全站熱搜