J'ai une question intéressante sur le compact en PHP et le compact dans Laravel.
Prenons cet exemple compact en PHP :
$banana = "yellow"; $apple = "red"; $result = compact('banana','apple'); var_dump($result); //Output array(2) { ["banana"]=> string(6) "yellow" ["apple"]=> string(3) "red" }
Mais lorsque j'utilise la vue de retour compacte sur le contrôleur dans Laravel, elle renvoie une variable au lieu d'un tableau
public function fruisColor($banana="yellow",$apple="red"){ return view('template.fruits',compact('banana','apple')); }
Mais quand j'obtiens cette variable dans le template blade, ce n'est pas un tableau mais une variable, voir :
P1 = {{ $banana }} e P1 = {{ $apple }}
Si PHP convertit de manière compacte les variables en tableaux, pourquoi dans le panneau de modèle ne renvoie-t-il que var ? Cela ne devrait pas être :
P1 = {{ $banana[0] }} e P1 = {{ $apple[0] }}
Ça a l’air déroutant, n’est-ce pas ?
Étant donné que les deux paramètres de la méthode view acceptent un tableau qui, selon la documentation, les convertit en variables pouvant être utilisées dans les modèles de lame, Laravel peut gérer le tableau renvoyé par compact.