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

上面的Select2小部件(和大多數小部件相同)都需要Model屬性,但我不知道模型在Widget中做了什麼,因爲即使我放置了其他模型對象,它也可以工作。Yii2,小部件中的模型參數是什麼?

用$ userModel替換模型,它根本與供應商模型無關,我試過了,它可以工作。

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

我該如何理解模型?

+0

'Widget'本身並不需要模型afaik。什麼是'Select2'級?這可能與此有關。 – Blizz

回答

0

Select2小部件是Yii2輸入小部件的一個實例,它爲模型屬性呈現輸入。對於創建/更新模型的表單很有用。所以例如如果是actionCreate(),你應該使用你的新的ActiveRecord模型實例作爲widget的「模型」屬性和任何屬性名稱,你想填充'屬性'。

因此,在您的示例中,您正嘗試使用$ vendor list中的某個鍵設置您的模型ID。所有模型都適合您的小部件設置,只是因爲它們都有'id'。

我相信你需要在這裏提供一些其他的屬性,例如, 'VENDOR_ID'。請注意,您的$ vendor列表應具有供應商id作爲關鍵字,例如供應商名稱作爲值。

+0

非常感謝 – Nerd