簡體   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