Какой лучший способ проверки входящего запроса из контроллера в Laravel? - PullRequest
0 голосов
/ 23 января 2019

Стандартный способ проверки входящих запросов в Laravel выглядит примерно так:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class PostController extends Controller
{
    /**
     * Show the form to create a new blog post.
     *
     * @return Response
     */
    public function create()
    {
        return view('post.create');
    }

    /**
     * Store a new blog post.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ]);

        // The blog post is valid...
    }
}

Нет ничего плохого в проверке запросов в контроллерах, но как я могу написать логику проверки из контроллера, чтобы сохранить ее?очистить и не сломать принцип единой ответственности?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вы можете сделать свой собственный запрос формы.

  1. Сначала создайте запрос с помощью php artisan make:request StorePostRequest
  2. Создайте свое собственное правило в этом классе, например:
public function rules()
{
    return [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ];
}
Обновление функции контроллера
 public function store(StorePostRequest $request)
    {

        // do something
    }

Для получения дополнительной информации: https://laravel.com/docs/5.7/validation#creating-form-requests

0 голосов
/ 23 января 2019

Используйте запросы формы, предоставленные Laravel:

https://laravel.com/docs/5.7/validation#creating-form-requests

и убедитесь, что ваш контроллер использует черту ValidatesRequests.

Запросы формы проверяются до того, какДействия контроллера выполняются и содержат правила проверки и логики авторизации.

...