khodakhah/laravel-inertia-form
最新稳定版本:v0.0.1-alpha
Composer 安装命令:
composer require khodakhah/laravel-inertia-form
包简介
A package for Inertia.js forms integration in Laravel
README 文档
README
A simple package to handle forms in Laravel with InertiaJS.
This is the backend pair of InertiaForm package.
Requirements
- PHP ^8.1 || ^8.2
Installation
composer require khodakhah/larave-inertia-form
Usage
1. Create your form request class by extending InertiaFormRequest
- Create a RequestForm class and extend it from InertiaFormRequest
- Create a static method named formInputs and return an instance of InertiaForm
UserFormRequest.php
use Khodakhah\InertiaForm\InertiaFormRequest; class UserFormRequest extends InertiaFormRequest { public static function formInputs(\Khodakhah\InertiaForm\InertiaForm $form) : \Khodakhah\InertiaForm\InertiaForm{ $form->text('name', 'required'); $form->text('email', 'required|email'); $form->text('password', 'required|min:8'); return $form; } }
- Use
toInertia()method to convert the form to an array and send it to the frontend. And usevalidated()method to convert the form errors to an array and send it to the frontend.
class UserController extends Controller { use Khodakhah\InertiaForm\InertiaFormRequest; public function create() { return Inertia::render('User/Create', [ 'form' => UserFormRequest::toInertia() ]); } public function store(UserFormRequest $request) { User::create($request->validated()); return redirect()->route('users.index'); } }
2. Create your form object simply by using InertiaForm
You can simply create a form by using InertiaForm class, and assign it into a variable, or return it from a method.
class UserController extends Controller { use Khodakhah\InertiaForm\InertiaForm; use Illuminate\Http\Request; private function userForm(): InertiaForm { $form = new InertiaForm(); $form->text('name', 'required'); $form->text('email', 'required|email'); $form->text('password', 'required|min:8'); return $form; } public function create() { return Inertia::render('User/Create', [ 'form' => $this->userForm()->toInertia() ]); } public function store(Request $request) { User::create( $request->validate( $this->userForm()->toValidation() ) ); return redirect()->route('users.index'); } }
Issues
If you have any issues, please create an issue in the issues section.
Contributing
If you have any ideas or suggestions, please create a pull request in the pull requests section. I'll be happy to review and merge them.
Local development
- Clone the repository
- Run
composer install - Run
composer testto run the tests - Run
composer pintto run the linter (syntax check) - Run
composer fixto fix the linter errors - Run
composer analyseto run phpstan analyse
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 16
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-08-30