web-dev-qa-db-ja.com

Laravelでのブレードとの連結

ItemControllerのテーブル列にアクセスしようとしています。この例では、配列の値と連結された文字列を列名に使用します。

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

望ましい出力:

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

$ rs-> nameの変数を動的に設定するにはどうすればよいですか?

8
Ashley Brown

これを試してください:

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

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

15
Alexey Mezenin

非常に簡単です。単にを使用してください。 PHPでの連結の署名

0
Guest-Baby

単一のレコード「タスク」を取得していて、このレコードには「var1」、「var2」、「var3」という変数があり、「var16」までずっとあるとします。

次のように、これらの変数をブレードファイルにエコーできます。

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