Как работает этот логический параметр в php laravel? А также как работает («завершено») - PullRequest
0 голосов
/ 12 января 2019

Итак, я изучаю этот урок здесь https://laracasts.com/series/laravel-from-scratch-2018/episodes/19, и я только что наткнулся на

public function complete($completed = true){
    $this->update(compact('completed'));
}

И то, как я это использую, выглядит так:

  public function update(Task $task){

    $task->complete(request()->has('completed'));

    return back();
  }

как работает эта завершенная ($ complete = true) функция? Кроме того, я немного растерялся из-за того, как работает (), он просит проверить, есть ли в запросе объект с полем «завершено»?

1 Ответ

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

Начиная с $request->has('completed'), request()->has() проверяет наличие ключа в данных request().

Он не проверяет значение, поэтому значение request()->get('completed') может быть null или может иметь значение, но в этом случае $request->has('completed') возвращает только то, присутствует ли ключ и не имеет отношения к значение.

На public function completed($completed = true), очевидно, значение $completed будет boolean ответом request()->has('completed').

Затем вы должны понимать, что compact('completed') преобразует переменную $completed в массив ['completed'=>true] или ['completed'=> false].

Допустим, вы передали 3 переменные $foo = apple, $bar = banana, $baz = carrot, в compact('foo','bar','baz') он превратит каждую переменную и их значения в ассоциативный массив, например ['foo' => 'apple', 'bar'=>'banana','baz'=>'carrot']

Учитывая вышеизложенное, $this->update(compact('completed')); по сути точно такой же, как $this->update(['completed'=>$completed]);

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