Laravel массив в шаблоне усов
Это мой контроллер:
class HomeController extends BaseController {
public $layout = 'default';
public function index()
{
$page = Page::find(1);
$this->layout->page_title = $page->page_title;
$allPages = Page::lists('title');
// Give the page it's needed content
$this->layout->nest('content', 'pages.home', array(
'pageHeading' => 'Rendered with Mustache.php',
'pageContent' => $allPages
));
}
}
У меня есть этот мастер шаблон называется default.blade.php
и шаблон дочерней страницы под названием home.mustashe
,
Проблема в том, что я хочу использовать массив, содержащий все заголовки моих страниц в home.mustache
шаблон. как добавить мой массив в home.mustache
шаблон?
Код в том виде, в котором он есть сейчас, дает мне следующую ошибку: Array to string conversion
Пакет с усами, который я использую: Ссылка на пакет с усами
2 ответа
Эта ошибка в буквальном смысле означает "Вы пытаетесь отобразить массив в виде строки" ... что вы не предоставили достаточно контекста, чтобы выполнить отладку полностью, но я предполагаю, что вы устанавливаете pageContent
как массив значений, затем вызывая {{ pageContent }}
в шаблоне.
Либо конвертируйте свой массив в строку самостоятельно:
implode(', ', $allPages)
... или сделать что-то похожее на массив pageContent
внутри шаблона:
{{# pageContent }}<li>{{ . }}</li>{{/ pageContent }}
Документы в вашем пакете Усы говорят, что массивы обрабатываются следующим образом:
{{#posts}}
{{> posts._post}}
{{/posts}}