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}}
Другие вопросы по тегам