2015-07-07 4 views
4

Я хочу перебрать массив и поместить $key внутри необработанного тега Blade, например.Blade templating: Может ли необработанные теги иметь php-эхо внутри?

<table> 
    <tbody> 
     @foreach (array_keys($array) as $key) 
      <tr> 
       <th> 
        {{ $key }} 
       </th> 
       <td> 

        <!-- THIS --> 
        @{{ model.{{ $key }} }} 

        <!-- OR THIS --> 
        @{{ model.<?= $key ?> }} 

       </td> 
      </tr> 
     @endforeach 
    </tbody> 
</table> 

Это для последующего использования с AngularJS. Есть ли способ сделать это, не имея необходимости жестко кодировать все эти $key?

+0

Что вы подразумеваете под необработанным тегом клинка? вы хотите не показывать ключевое значение, но сохранить его как переменную? –

+0

Когда вы ставите '@ {{stuff}}' в шаблон клинка, он будет заканчиваться '{{stuff}}' как только шаблон будет обработан и сохранен как простой PHP. Скажем '$ key = 'id'', мне бы хотелось' @ {{model. }} 'будет храниться как' {{model.id}} ', когда все будет сказано и сделано. – hellaminx

ответ

2

вы можете создавать собственные директивы лезвия, я сделал это, он будет служить вашей цели, добавьте это в вашем классе AppServiceProvider

public function boot() 
    { 
     Blade::directive('ng', function($var) { 
      return "<?php echo \"@{{ model.\" ?><?php echo with{$var} ?> <?php echo \"}}\" ?> "; 
     }); 
    } 

теперь вы можете использовать его на ваш взгляд лезвия, как это

@ng($key) 

, который будет отображаться как

{{ model.id }} 

это также может быть сделано, как эти, не липкая d looking

<?php echo '{{ model.' . $key . ' }}'; ?> 
+2

Вы можете очистить его, как: ' name. '}}'; ?> ' – mopo922

Смежные вопросы