Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Подскажите, пожалуйста, в чем может быть дело.
Подключаю Blade-представление вот так:
@include('partials.form_element', ['genres' => 'sfd'])
Сам файл partials/form_element.blade.php подключается. Текст весь выводится.
Но, все что в фигурных скобках - так и выводится. Т.е. выводятся и сами фигурные скобки.
Т.е. вижу на странице вот это:
{{ $genres }}
Или вот это:
{{ time() }}
Т.е. функция time() не сработала. А просто вывелась в фигурных скобках.
Если же делаю так:
<?php
echo $genres;
?>
То работает.
При чем у родительского шаблона все работает.
Не в сети
А вы можете показать весь form_element.blade.php?
Не в сети
Да, без проблем. Но сам шаблон еще не доделан:
<form>
<div class="form-group">
<label for="nameInput">Название</label>
<input type="email" class="form-control" id="nameInput" aria-describedby="nameHelp" placeholder="Название произведения">
<small id="emailHelp" class="form-text text-muted">Желатеьно коротко и ёмко.</small>
</div>
<div class="form-group">
<label for="elements_string">Ваша первая строка</label>
<input type="text" class="form-control" id="elements_string" name="elements_string" placeholder="Начнем, пожалуй!">
</div>
<div class="form-group">
<label class="form-check-label" for="genres">Жанр</label>
<select name="genre">
<option>-- жанр --</option>
@foreach ($genres as $genre){
<option> {{ $genre->name }} </option>
@endforeach
</select>
</div>
<button type="submit" class="btn btn-primary">Записать</button>
</form>
Такой должен быть код. Здесь не работает: {{ $genre->name }} .
И @foreach тоже не работает. Но, @foreach не выводится. Просто не срабатывает.
А {{ $genre->name }} - прям так и выводится. И любые другие переменные, которые я пробую тоже так выводятся.
Не в сети
Навскидку, в строке
@foreach ($genres as $genre){
уберите последнюю скобку — её не должно там быть.
Не в сети
Убрал. Не помогло (
Ну, и вообще шаблон привел вот к такому виду:
<div>
{{ time() }}
</div>
Выводится, просто:
{{ time() }}
Не в сети
В том виде, как вы описываете
@include('partials.form_element', ['genres' => 'sfd'])
partials/form_element.blade.php
{{ $genres }}
всё должно работать. Ошибка где-то в другом месте.
Не в сети
@barmaley я думаю ты накосячил с расширением файла.
Blade может подключать через @include() как form_element.blade.php так и form_element.php, но конечно если это просто .php файл, то он НЕ будет обрабатываться как шаблон. Поэтому {{ time() }} выводится по правилам PHP: как простой текст.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
artoodetoo
Точно! Не указал в файле .blade.
Файл переименовал и все заработало.
Спасибо!
Не в сети