【问题标题】:Laravel array in mustache template小胡子模板中的 Laravel 数组
【发布时间】:2013-10-16 15:33:00
【问题描述】:

这是我的控制器:

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

我使用的 Mustache 包是:Link to mustache package

【问题讨论】:

    标签: php laravel laravel-4 mustache.php


    【解决方案1】:

    从字面上看,该错误意味着“您正在尝试将数组显示为字符串” ...您没有提供足够的上下文进行完全调试,但我猜这意味着您正在设置 @987654321 @ 作为值数组,然后在模板中调用 {{ pageContent }}

    要么自己将数组转换为字符串:

    implode(', ',  $allPages)
    

    …或者在模板中使用pageContent 做一些类似数组的事情:

    {{# pageContent }}<li>{{ . }}</li>{{/ pageContent }}
    

    【讨论】:

    • 那你需要什么? :) 我仍然不确定如何将数组提供给模板。
    【解决方案2】:

    Mustache 包上的文档说数组的处理方式如下:

    {{#posts}}
        {{> posts._post}}
    {{/posts}}
    

    【讨论】:

    • 我知道,但是如何从控制器添加数组,就像处理字符串一样?
    • 好吧,它不起作用,Laravel给我以下错误:数组到字符串转换..我现在真的不知道该怎么办。 ://
    • 更新了我的问题。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2012-07-08
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多