2017-10-30 5 views
2

Ich möchte Eingabefeld mit Tag mit Input Tags Widget machen. Aber ich habe diesen Fehler:Fehler InputWidget.php Zeile 75 Eigenschaften müssen angegeben werden

Entweder 'Name' oder 'Modell' und 'Attribut' Eigenschaften müssen angegeben werden.

in /var/www/html/paramoor/vendor/yiisoft/yii2/widgets/InputWidget.php in Zeile 75:

/** 
* Initializes the widget. 
* If you override this method, make sure you call the parent implementation first. 
*/ 
public function init() 
{ 
    if ($this->name === null && !$this->hasModel()) { 
     throw new InvalidConfigException("Either 'name', or 'model' and 'attribute' properties must be specified."); 
    } 
    if (!isset($this->options['id'])) { 
     $this->options['id'] = $this->hasModel() ? Html::getInputId($this->model, $this->attribute) : $this->getId(); 
    } 
    parent::init(); 
} 

Und hier ist mein Code anzeigen:

<?= $form->field($modelDetail, 'product_id')->widget(TagsinputWidget::classname(), 
[ 
    'clientOptions' => [ 
     'trimValue' => true, 
     'allowDuplicates' => false, 
     'delimiter' => ';', 
    ], 
]) ?> 
+0

Was ist '$ modelDetail'? Ist es ein abgeleiteter [Model] (http://www.yiiframework.com/doc-2.0/yii-base-model.html) Typ? Und bist du sicher mit 'product_id'? Dieses Attribut enthält die Tags? Ungewöhnlicher Name ... – robsch

Antwort

0

Wenn Sie Widgets für Felder/Filter/etc. Verwenden, müssen Sie eine (oder zwei) dieser Optionen angeben. Sie haben 2 Möglichkeiten:

Give-Modell und Attribut:

<?= $form->field($modelDetail, 'product_id')->widget(TagsinputWidget::classname(), 
[ 
    'model' => $modelDetail, 
    'attribute' => 'product_id', 
    'clientOptions' => [ 
     'trimValue' => true, 
     'allowDuplicates' => false, 
     'delimiter' => ';', 
    ], 
]) ?> 

nur Namen geben (als kombiniertes Modell und Attributnamen):

<?= $form->field($modelDetail, 'product_id')->widget(TagsinputWidget::classname(), 
[ 
    'name' => 'ModelDetail[product_id]', 
    'clientOptions' => [ 
     'trimValue' => true, 
     'allowDuplicates' => false, 
     'delimiter' => ';', 
    ], 
]) ?> 

Ich schlage vor, mit erster Option als Wenn der Modellname geändert wird, müssen Sie nicht suchen, wo dieser Modellname als Zeichenfolge verwendet wurde.

+0

Ich habe versucht, ein Modell oder Attribut oder einen Namen wie oben beschrieben hinzuzufügen, aber es funktioniert nicht. Es werden immer noch die Eigenschaften 'Entweder' oder 'Modell' und 'Attribut' angegeben. Fehler – adn

Verwandte Themen