Зачем использовать внедрение зависимостей для объекта Request против request () в Laravel? - PullRequest
0 голосов
/ 24 сентября 2018

Есть ли какая-то польза от внедрения объекта Request в метод вашего контроллера следующим образом:

use Request;

class WidgetController
{
  public function create(Request $request)
  {
    $name = $request->input('name');
  }
}

По сравнению с удалением оператора use и внедрением объекта и простым использованием помощника:

class WidgetController
{
  public function create()
  {
    $name = request('name');
  }
}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Прежде всего, стилизация кода и удобочитаемость.Первый способ более читабелен.Во-вторых, мне кажется, что если вы используете request() helper, вы не сможете проверить запрос.

Допустим, ваш запрос должен содержать параметры title и body.Если этого параметра нет, он никогда не достигнет этой конечной точки.Используя helper(), сделать это невозможно.Хотя, используя первый метод, есть действительно удобный способ сделать это.

class StoreRequest extends FormRequest
{
    public function rules()
    {
        return [
            'title' => 'required',
            'body' => 'sometimes'
        ];
    }
}

И чем просто:

use StoreRequest;

class WidgetController
{
  public function create(StoreRequest $request)
  {
    $name = $request->input('name');
  }
}
0 голосов
/ 24 сентября 2018

Помощник request - это просто ярлык для Request::input('name').Код для помощника запроса определяется следующим образом: запрос помощника

app('request')->input($key, $default);

Приложение - это контейнер, который управляет внедрением зависимостей в Laravel.Он разрешит зависимость, соответствующую имени request, которое является экземпляром Illuminate\Http\Request, и вызовет для него метод input, передав имя ключа, который вы хотите получить.

На самом делебез разницы, один ярлык другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...