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()— 完全控制创建的验证器。- 等等。
享受吧!✨