如何创建对象数组并将其传递给 Blade 的 @include?
How to create and pass an array of object to Blade's @include?
我是 Blade 的新手,找不到如何操作。
不幸的是,Blade's documentation 帮助不大,但我已经尝试了以下方法:
@include('module.my-component', [
'param' => [{
'x' => 'A',
'y' => false
}, {
'x' => 'B',
'y' => true
}]
])
不出所料,我遇到了以下语法错误:
Parse error: syntax error, unexpected '{', expecting ']'
有人知道正确的语法吗?
您必须使用有效的 PHP 语法。这是无效的 PHP:
[{'b' => 'a'}]
这是有效的 PHP 不过:
[
(object) ['x' => 'B', 'y' => true],
(object) [ ... ],
]
那将是 stdClass
个对象的数组。当您将数组转换为 object
时,您会得到一个具有这些属性的 stdClass
对象。
基本上,Blade 指令中的所有内容都是一个 'string'/'expression' ... 当 Blade 编译时,它会用 PHP 替换自身,并且该表达式通常直接被删除,所以最后都是PHP,所以必须有效。您可以从存储文件夹中打开任何已编译的视图以查看实际效果。
我是 Blade 的新手,找不到如何操作。
不幸的是,Blade's documentation 帮助不大,但我已经尝试了以下方法:
@include('module.my-component', [
'param' => [{
'x' => 'A',
'y' => false
}, {
'x' => 'B',
'y' => true
}]
])
不出所料,我遇到了以下语法错误:
Parse error: syntax error, unexpected '{', expecting ']'
有人知道正确的语法吗?
您必须使用有效的 PHP 语法。这是无效的 PHP:
[{'b' => 'a'}]
这是有效的 PHP 不过:
[
(object) ['x' => 'B', 'y' => true],
(object) [ ... ],
]
那将是 stdClass
个对象的数组。当您将数组转换为 object
时,您会得到一个具有这些属性的 stdClass
对象。
基本上,Blade 指令中的所有内容都是一个 'string'/'expression' ... 当 Blade 编译时,它会用 PHP 替换自身,并且该表达式通常直接被删除,所以最后都是PHP,所以必须有效。您可以从存储文件夹中打开任何已编译的视图以查看实际效果。