如何使用模型 class 编辑、销毁和获取 laravel 8 资源控制器中的单个值?
How to use model class to edit , destroy and get single value in laravel 8 resource controller?
我想用 Laravel 8 和资源控制器开发一个 API。
以前我们使用 id 参数从数据库中编辑、删除和获取单个值。但是现在,这里给出模型 class 作为显示、编辑、更新和销毁方法的参数。
如何使用此模型 class 执行不带 id 参数的 crud 操作?
我知道我误会了,我想弄清楚。
public function show(Food $food)
{
//
}
public function edit(Food $food)
{
//
}
public function update(Request $request, Food $food)
{
//
}
public function destroy(Food $food)
{
//
}
这是一种更好的检索数据的方法。
而不是写作:
public function show($id)
{
echo $id; // 12
$food = Food::find($id); // your food instance with id 12
echo $food->id; //12
}
你写:
public function show(Food $food)
{
$food; // your food instance with id 12
echo $food->id; //12
}
Laravel 会将路由的参数名称与控制器方法声明中的参数名称相匹配,并自动为您提供正确的 Food
实例。
您的路线应如下所示:
Route::get('foods/{food}', [FoodController::class, 'show'])->name('foods.show');
// for each verbs (index, show, update...)
// the "food" parameter will be internally mapped
// to the $food argument inside your controller methods declaration
// or even simpler:
Route::resource('foods', FoodController::class);
// which will declare all routes for this resource
这称为隐式模型绑定。有关此主题的文档可在此处找到:https://laravel.com/docs/8.x/routing#implicit-binding
我想用 Laravel 8 和资源控制器开发一个 API。 以前我们使用 id 参数从数据库中编辑、删除和获取单个值。但是现在,这里给出模型 class 作为显示、编辑、更新和销毁方法的参数。 如何使用此模型 class 执行不带 id 参数的 crud 操作? 我知道我误会了,我想弄清楚。
public function show(Food $food)
{
//
}
public function edit(Food $food)
{
//
}
public function update(Request $request, Food $food)
{
//
}
public function destroy(Food $food)
{
//
}
这是一种更好的检索数据的方法。
而不是写作:
public function show($id)
{
echo $id; // 12
$food = Food::find($id); // your food instance with id 12
echo $food->id; //12
}
你写:
public function show(Food $food)
{
$food; // your food instance with id 12
echo $food->id; //12
}
Laravel 会将路由的参数名称与控制器方法声明中的参数名称相匹配,并自动为您提供正确的 Food
实例。
您的路线应如下所示:
Route::get('foods/{food}', [FoodController::class, 'show'])->name('foods.show');
// for each verbs (index, show, update...)
// the "food" parameter will be internally mapped
// to the $food argument inside your controller methods declaration
// or even simpler:
Route::resource('foods', FoodController::class);
// which will declare all routes for this resource
这称为隐式模型绑定。有关此主题的文档可在此处找到:https://laravel.com/docs/8.x/routing#implicit-binding