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拿到東西

這是一個小雷

arrow
arrow
    全站熱搜

    工程師黑田 發表在 痞客邦 留言(0) 人氣()