我想用Laravel 8開發一個帶有資源控制器的API。 以前我們使用id引數來編輯,洗掉和從資料庫中獲取單一的值。但是現在, 這里給了模型類作為顯示、編輯、更新和銷毀方法的引數。 我怎樣才能在沒有id引數的情況下,使用這個模型類來進行一些簡單的操作? 我知道我在一個錯誤的概念上,我想得到一個清晰的概念。
public function show(Food $food)
{
//
}
public function edit(Food$food)
{
//
}
public function update(Request $request, 食品 $food)
{
//
}
public function destroy(Food$food)
{
//
uj5u.com熱心網友回復:
這只是一種更好的檢索資料的方法。
而不是寫:
public function show($id)
{
echo $id; / 12
$food = Food::find($id); //你的食物實體id為12。
echo $food->id; /12。
}
你寫道:
public function show(Food $food)
{
$food; //你的食物實體的id為12。
echo $food-> id; /12
}
Laravel會將你的路由的引數名與你的控制器方法宣告中的引數名相匹配,并會自動給你正確的Food實體。
你的路由應該是這樣的:
Route::get('fants/{food}', [FoodController::class, 'show'])-> name('food.show') 。
//for each verbs (index, show, update...)
//"食品 "引數將被內部映射。
//在你的控制器方法宣告中的$food引數。
//或更簡單:
Route::resource('foods', FoodController::class)。
///這將宣告這個資源的所有路由。
這被稱為隱式模型系結。關于這個主題的檔案可以在這里找到。https://laravel.com/docs/8.x/routing#implicit-binding
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/307816.html
標籤:
上一篇:<p>LaravelLivewire專案。創建了一個帶有條件欄位的動態表單。需要在選擇業務型別(在線/物體)后,在選擇業務型別時添加輸入欄位type=text。我在很多論壇上問過,人們給出
