请教webman中使用blade组件render()方法传参问题

cncgi

问题描述

webmanz使用Blade组件时,在组件的render方法中,需要通过view将在模板文件(*.blade.php)中使用的属性变量传递过去(否则报Undefined variable: msg),目前暂时通过get_object_vars($this)把组件对象的所有属性传递进去。
但在laravel手册中是这样描述的:“在组件的视图中,组件的所有public类型的属性都是可用的。不必通过组件类的 render方法传递。”
请问webman中如何能更方便的使用blade的组件呢?

class Alert extends Component
{
    public $msg;
    public function __construct($msg)
    {
        $this->msg = $msg;
    }

    public function render()
    {
        return view('components/alert',get_object_vars($this))->rawBody();
    }
}
496 1 0
1个回答

walkor

你说的是laravel的特性,webman并不支持。
另外这个特性感觉不是很好,弄不好参数被覆盖的风险,如果你需要的话用get_object_vars 是很好的方案。

  • cncgi 2023-02-21

    明白了,谢谢walkor大佬~~
    那这样的话,webman中blade组件的$attributes应该也不能自动添加进去了哈,我试下,attributes一直是null

年代过于久远,无法发表回答
🔝