繁体   English   中英

Laravel 紧凑型()

[英]Laravel Compact()

我有一个有趣的问题,关于 PHP 中的紧凑型和 Laravel 中的紧凑型。

以 PHP 中的紧凑示例为例:

$banana = "yellow";
$apple = "red";
$result = compact('banana','apple');
var_dump($result);
//Output  
array(2) {
["banana"]=>
string(6) "yellow"
["apple"]=>
string(3) "red"
}

但是当我在 laravel 中的 controller 上使用 compact 返回视图时,它返回变量而不是数组

public function fruisColor($banana="yellow",$apple="red"){
  return view('template.fruits',compact('banana','apple'));
}

但是当我在模板刀片中得到这个变量时,它不是一个数组而是一个变量,看:

P1 = {{ $banana }} e P1 = {{ $apple }}

如果 PHP compact 转换为变量到数组,为什么在模板刀片中它只返回 var? 它不应该是:

P1 = {{ $banana[0] }} e P1 = {{ $apple[0] }}

看起来很混乱不是吗?

由于 view 方法的两个参数接受一个数组,根据文档,该数组将其转换为可在刀片模板中使用的变量,因此 Laravel 可以处理从 compact 返回的数组。

这就是 Laravel 视图模板处理数组的方式;

Laravel 视图模板处理数组并可以使用数组键调用您的数据。

这并不意味着它没有通过使用 compact 作为数组传递。 您的解决方案也可以像这样工作

 // In view
 Hello, {{ $banana }} {{$apple}}

//controller
 public function fruisColor($banana="yellow",$apple="red"){
   return view('template.fruits',['banana'=>"yellow", 'apple' => "red" ]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM