lorisleiva / request-controller
FormRequest 和 InvokableController 刚刚有了宝宝
v0.1.1
2020-11-15 21:56 UTC
Requires
- php: ^7.3|^7.4|^8.0
- illuminate/contracts: ^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
README
你是否厌倦了每次都要为几乎每个可调用的 Controller
创建一个 FormRequest
类?
实际上,经过一些调整后,你可以将 FormRequest
类用作控制器。[了解更多](https://lorisleiva.com/if-formrequests-and-invokable-controllers-had-a-baby/)
此包只提供了一个类:一个扩展了我们所熟知的 FormRequest
类的 RequestController
类,并对它进行了一些调整,使其可以作为可调用的 Controller
使用。
安装
composer require lorisleiva/request-controller
使用方法
class MyController extends RequestController { public function middleware() { return []; } public function authorize() { return true; } public function rules() { return []; } public function __invoke() { // ... } }
请注意,middleware
、authorize
和 rules
方法都是可选的,默认值如示例所示。
由于 RequestController
扩展了 FormRequest
,因此您可以访问所有您习惯使用的方法,例如:
$this->get($attribute)
— 访问请求属性。$this->route($attribute)
— 访问路由参数。$this->validated()
— 访问验证数据。$this->user()
— 访问用户。- 等等。
同样,您可以覆盖您习惯使用的相同 FormRequest
方法,以自定义验证逻辑:
attributes()
— 为您的属性提供用户友好的名称。message()
— 自定义您的验证消息。withValidator()
— 扩展当前验证器。validator()
— 完全控制创建的验证器。- 等等。
享受吧!✨