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();
}
}
你说的是laravel的特性,webman并不支持。
另外这个特性感觉不是很好,弄不好参数被覆盖的风险,如果你需要的话用get_object_vars 是很好的方案。
明白了,谢谢walkor大佬~~
那这样的话,webman中blade组件的$attributes应该也不能自动添加进去了哈,我试下,attributes一直是null