web-dev-qa-db-fra.com

Concaténation avec Blade en Laravel

J'essaie d'accéder à une colonne de table dans mon ItemController. Dans ce cas, je souhaite utiliser les valeurs de mon tableau + une chaîne concaténée pour le nom de la colonne.

ItemController.php ....

public function displayItems() {
   $itemsList = array('Alpha','Bravo','Charlie','Delta');
   //$results = returned mysql row here
   return view('items', ['rs' => $results, 'items' => $itemsList]);
}

page.blade.php

@foreach ($items as $item)
  //$item is used elsewhere too, so keep $item
  {{$rs->$item.'_data'}}
@endforeach

Sortie désirée:

$rs->Alpha_data;
$rs->Delta_data;
etc

Comment puis-je définir dynamiquement une variable pour $ rs -> nom?

8
Ashley Brown

Essayez de faire ceci:

{{ $rs->${$item.'_data'} }}

http://php.net/manual/en/language.variables.variable.php

15
Alexey Mezenin

Assez simple, utilisez simplement le. signe pour les concats en PHP

0
Guest-Baby

disons que vous récupérez un seul enregistrement "tâche", et cet enregistrement a des variables appelées "var1", "var2", "var3" ... jusqu'à "var16".

vous pouvez faire écho à ces variables dans votre fichier blade comme ceci:

@for($y=1; $y<=16; $y++)
 {{ $task->{'var'.$y} }}
@endfor
0
Bruce Tong