阅读(1568)
赞(9)
Laravel 8 单行为控制器
2021-06-24 09:51:26 更新
如果你想要定义一个只处理单个行为的控制器,你可以在控制器中放置一个 __invoke
方法:
<?php
namespace AppHttpControllers;
use AppHttpControllersController;
use AppModelsUser;
class ShowProfile extends Controller
{
/**
* 显示指定用户的简介
*
* @param int $id
* @return IlluminateViewView
*/
public function __invoke($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}
当注册单个行为控制器的路由时不需要指名方法:
use AppHttpControllersShowProfile;
Route::get('user/{id}', ShowProfile::class);
你可以通过 Artisan 命令工具里的 make:controller
命令中的 --invokable
选项来生成一个可调用的控制器
php artisan make:controller ShowProfile --invokable
技巧:可以使用 stub 定制 自定义控制器模板