Best practices to handle the Laravel request validation.
![]() |
Add caption |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use Illuminate\Http\Request; | |
use App\Http\Requests; | |
use App\Http\Controllers\Controller; | |
class MyController extends Controller { | |
public function store(Request $request) { | |
$request->validate([ | |
'title' => 'required|unique:posts|max:255', | |
'body' => 'required', | |
'publish_at' => 'nullable|date', | |
]); | |
} | |
} |
It looks little messy and hard to manage if there are multiple fields coming as a input. So we can resolve this by moving all this mess into request file. How?
Open project directory in terminal and run
- php artisan make:request StoreMyRequests
StoreMyRequests.php. Now open this file and move validation code into this and it will looks like:-
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Requests; | |
use App\Modules\Api\V1\Controllers\ApiController; | |
use Illuminate\Contracts\Validation\Validator; | |
use Illuminate\Foundation\Http\FormRequest; | |
use Illuminate\Http\Request; | |
class StoreMyRequests extends FormRequest | |
{ | |
public function rules(Request $request) | |
{ | |
return [ | |
'title' => 'required|unique:posts|max:255', | |
'body' => 'required', | |
'publish_at' => 'nullable|date', | |
]; | |
} | |
} |
Now, Use these validations in controller like:-
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use Illuminate\Http\Request; | |
use App\Http\Requests\StoreMyRequests; | |
use App\Http\Controllers\Controller; | |
class MyController extends Controller { | |
public function store(StoreMyRequests $request) { | |
$request->validated(); | |
} | |
} |
Comments
Post a Comment