Laravel类组件传参问题:不使用@props如何正确传递参数?
正确传参方式
分两种场景处理:
传递字符串字面量:直接写属性名=值,不要加冒号
:, 这样会把值作为字符串传递给组件参数,覆盖默认值<x-category-select selected="3" id_name="category_id" />传递变量:必须加冒号
:, 同时变量名要带$符号(确保变量在当前模板上下文存在)
比如你有一个$category_id变量,写法如下:<x-category-select selected="{{ $currentSelected }}" :id_name="$category_id" />你之前报错是因为写了
:id_name="category_id",没加$的话PHP会把category_id当成未定义的常量,自然抛出错误。
额外注意:
要确保你的组件类构造函数参数名和模板传参的属性名完全一致(大小写敏感),比如组件类代码要像这样:
class CategorySelect extends Component { public $selected; public $id_name; public function __construct($selected = -1, $id_name = "default_id") { $this->selected = $selected; $this->id_name = $id_name; } public function render() { return view('components.category-select'); } }
内容的提问来源于stack exchange,提问作者yossi
相关产品推荐
相关产品推荐

