0
echo Select2::widget([
    'model' => $vendorModel,
    'attribute' => 'id',
    'data' => $vendor,
    'options' => ['placeholder' => 'Select a vendor ...'],
    'pluginOptions' => [
        'allowClear' => true
    ],
]);

上面的 Select2 小部件(和大多数小部件都相同)需要 Model 属性,但我不知道模型在 Widget 中的作用,因为即使我放置任何其他模型对象,它也可以工作。

用完全与供应商模型无关的 $userModel 替换模型,我尝试过,它可以工作。

echo Select2::widget([
    'model' => $userModel,
    'attribute' => 'id',
    'data' => $vendor,
    'options' => ['placeholder' => 'Select a vendor ...'],
    'pluginOptions' => [
        'allowClear' => true
    ],
]);

我应该如何理解模型?

4

1 回答 1

0

Select2 小部件是 Yii2 Input 小部件的一个实例,它呈现模型属性的输入。它对于您创建/更新模型的表单很有用。因此,例如,如果是用于 actionCreate(),您应该将新的 ActiveRecord 模型实例用于小部件“模型”属性和任何要填充“属性”的属性名称。

因此,在您的示例中,您尝试使用 $vendor 列表中的某个键设置模型 ID。所有模型都适合您的小部件设置,因为它们都有“id”。

我相信您需要在此处提供一些其他属性,例如“vendor_id”。请注意,您的 $vendor 列表应该有供应商 ID 作为键,例如供应商名称作为值。

于 2015-06-03T07:16:12.903 回答