【问题标题】:How to create and pass an array of object to Blade's @include?如何创建对象数组并将其传递给 Blade 的 @include?
【发布时间】:2018-05-23 20:24:03
【问题描述】:

我是 Blade 新手,不知道怎么做。

不幸的是,Blade's documentation 没有多大帮助,但我已经尝试了以下方法:

@include('module.my-component', [
    'param' => [{
        'x' =>  'A',
        'y' => false
    }, {
        'x' => 'B',
        'y' => true
    }]
])

正如预期的那样,我遇到了以下语法错误:

解析错误:语法错误,意外'{',期待']'

有人知道正确的语法吗?

【问题讨论】:

    标签: php arrays laravel object blade


    【解决方案1】:

    您必须使用有效的 PHP 语法。这不是有效的 PHP:

    [{'b' => 'a'}]
    

    这是有效的 PHP:

    [
        (object) ['x' => 'B', 'y' => true],
        (object) [ ... ],
    ]
    

    这将是一个stdClass 对象的数组。当您将数组转换为 object 时,您会得到一个具有这些属性的 stdClass 对象。

    基本上,Blade 指令中的所有内容都是一个“字符串”/“表达式”……当 Blade 编译时,它会将自身替换为 PHP,而该表达式通常直接被放入,所以最终都是 PHP,所以它必须是有效的。您可以从 storage 文件夹中打开任何已编译的视图来查看它的实际效果。

    【讨论】:

    • 谢谢!它奏效了——对于新手的问题我很抱歉,我真的在任何地方都找不到。
    • 不用担心......很多这些东西看起来有点神奇和复杂,当你不知道幕后发生的事情时,很难知道你能做什么和不能做什么
    猜你喜欢
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2021-09-26
    相关资源
    最近更新 更多