Yii2,模型参数在小部件中的作用是什么?
Yii2, what the model parameter does in widget?
echo Select2::widget([
'model' => $vendorModel,
'attribute' => 'id',
'data' => $vendor,
'options' => ['placeholder' => 'Select a vendor ...'],
'pluginOptions' => [
'allowClear' => true
],
]);
上面的Select2 widget(大部分widget都是一样的)需要Model属性,但是我不知道这个model在Widget中做了什么,因为即使我放了任何其他的model对象,它也能工作。
用与供应商模型完全无关的 $userModel 替换了模型,我试过了,它有效。
echo Select2::widget([
'model' => $userModel,
'attribute' => 'id',
'data' => $vendor,
'options' => ['placeholder' => 'Select a vendor ...'],
'pluginOptions' => [
'allowClear' => true
],
]);
我应该如何理解模型?
Select2 小部件是 Yii2 Input 小部件的一个实例,它呈现模型属性的输入。它对于您 create/update 您的模型的表单很有用。所以例如如果它用于 actionCreate(),您应该将新的 ActiveRecord 模型实例用于 widget 'model' 属性和您想要为 'attribute' 填充的任何属性名称。
因此,在您的示例中,您尝试使用 $vendor 列表中的一些键来设置您的模型 ID。所有型号都适合您的小部件设置,因为它们都有 'id'。
我认为您需要在此处提供一些其他属性,例如'vendor_id'。请注意,您的 $vendor 列表应该将供应商 ID 作为键,例如供应商名称作为值。
echo Select2::widget([
'model' => $vendorModel,
'attribute' => 'id',
'data' => $vendor,
'options' => ['placeholder' => 'Select a vendor ...'],
'pluginOptions' => [
'allowClear' => true
],
]);
上面的Select2 widget(大部分widget都是一样的)需要Model属性,但是我不知道这个model在Widget中做了什么,因为即使我放了任何其他的model对象,它也能工作。
用与供应商模型完全无关的 $userModel 替换了模型,我试过了,它有效。
echo Select2::widget([
'model' => $userModel,
'attribute' => 'id',
'data' => $vendor,
'options' => ['placeholder' => 'Select a vendor ...'],
'pluginOptions' => [
'allowClear' => true
],
]);
我应该如何理解模型?
Select2 小部件是 Yii2 Input 小部件的一个实例,它呈现模型属性的输入。它对于您 create/update 您的模型的表单很有用。所以例如如果它用于 actionCreate(),您应该将新的 ActiveRecord 模型实例用于 widget 'model' 属性和您想要为 'attribute' 填充的任何属性名称。
因此,在您的示例中,您尝试使用 $vendor 列表中的一些键来设置您的模型 ID。所有型号都适合您的小部件设置,因为它们都有 'id'。
我认为您需要在此处提供一些其他属性,例如'vendor_id'。请注意,您的 $vendor 列表应该将供应商 ID 作为键,例如供应商名称作为值。