这个布尔参数如何在laravel php中工作?以及(完成)的运作方式

时间:2019-01-12 19:05:44

标签: php laravel eloquent

所以我在这里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($ completed = true)函数如何工作?还对has()的工作方式有点迷失了,它要求检查请求是否具有带有“ completed”字段的对象?

1 个答案:

答案 0 :(得分:1)

$request->has('completed')开始,request()->has()检查request()数据中是否存在密钥。

它不检查值,因此request()->get('completed')的值可以是null或可以有值,但是在这种情况下,$request->has('completed')仅返回密钥是否为存在,而不关心该值。

public function completed($completed = true)上,显然$completed的值将是boolean的{​​{1}}响应。

然后,您必须了解request()->has('completed')将变量compact('completed')转换为数组$completed['completed'=>true]

假设您将3个变量['completed'=> false]$foo = apple$bar = banana传递给$baz = carrot,它将把每个变量及其值变成一个关联数组,就像{{ 1}}

鉴于上述compact('foo','bar','baz')['foo' => 'apple', 'bar'=>'banana','baz'=>'carrot']完全相同