【发布时间】:2021-10-31 05:05:23
【问题描述】:
我在 app/View/Components 中有一个名为 OrderBox.php 的刀片组件。 它有几个公共属性,我可以从 orderbox.blade.php 模板文件中访问。
<x-orderbox
:id="$id"
....
></x-orderbox>
但是,OrderBox.php 组件文件中有一个公共函数getShortTextByStatus($statusCode)
当我在 orderbox.blade.php 模板中调用这个函数时
{{ $getShortTextByStatus('EDIT') }}
我得到 未定义的变量:shortTextByStatus 错误
我关注了这个:https://laravel.com/docs/8.x/blade#component-methods 但一切看起来都一样,我错过了什么?
编辑:
如果我删除 $ 我得到 Call to undefined function getShortTextByStatus() 错误
{{ getShortTextByStatus('EDIT') }}
OrderBox.php
class OrderBox extends Component
{
public $id;
....
public function __construct()
{
//
}
public function render()
{
return view('components.orderbox');
}
public function getShortTextByStatus($statusCode)
{
return 'TEST';
}
}
编辑 2:
我注意到 x-orderbox 实际上应该是 x-order-box
<x-order-box
:id="$id"
....
></x-order-box>
这样,{{ $getShortTextByStatus("EDIT") }} 就可以了!
B U T
不传递属性,如 :id="$id" 或
something="static"
所以公开的$id;或 public $something 将是空的....
【问题讨论】:
-
你能分享
OrderBox.php吗? -
@WahyuKristianto - 请查看更新后的问题
-
@GJasonSharma - 我确实从内部调用它,我突出显示了文本的那部分
-
您是否尝试将其重命名为以
get开头的非?可能会混淆 Laravel。只是猜测 -
要使用
:id传递$id,您必须在构造函数中传递它:public function __construct($id) {并使用$this->id = id;设置它
标签: php laravel laravel-blade