Open szymjab opened 5 months ago
php artisan make:request PostRequest
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PostRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title' => 'required|string|max:25',
'content' => 'required|string',
];
}
}
public function store(Request $request): JsonResponse
{
$validatedData = $request->validated();
// Utwórz nowy post
$post = Post::create([
'title' => $validatedData['title'],
'content' => $validatedData['content'],
]);
return response()->json(['message' => 'Post created successfully!', 'post' => $post], 201);
}
Route::resource('posts', PostController::class);
https://github.com/ProgrammingPiotrN/ProjectNewWork/blob/907a705ab417ca83ee2a85d00276f19b4765db8f/Blog/app/Http/Controllers/PostController.php#L19
Dobrą praktyką jest rozbijać kod na mniejsze kawałki, aby łatwiej było je otestować i wdrażać ewentualne zmiany.
W tym przypadku możemy stworzyć nowy request,
PostStoreRequest
z istniejącymi regułami. Proponuję je też trochę bardziej uściślić - title i content powinny być typustring
, jeśli znamy ograniczenia w ilości znaków, to również można je tutaj wrzucić, lub oddelegować to do value objectu.https://laravel.com/docs/11.x/validation#form-request-validation