field($model, 'from_date')->widget('WidgetClassName', [ * // configure additional widget properties here * ]) ?> * ``` * * For more details and usage information on InputWidget, see the [guide article on forms](guide:input-forms). * * @author Qiang Xue * @since 2.0 */ class InputWidget extends Widget { /** * @var \yii\widgets\ActiveField active input field, which triggers this widget rendering. * This field will be automatically filled up in case widget instance is created via [[\yii\widgets\ActiveField::widget()]]. * @since 2.0.11 */ public $field; /** * @var Model the data model that this widget is associated with. */ public $model; /** * @var string the model attribute that this widget is associated with. */ public $attribute; /** * @var string the input name. This must be set if [[model]] and [[attribute]] are not set. */ public $name; /** * @var string the input value. */ public $value; /** * @var array the HTML attributes for the input tag. * @see \yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered. */ public $options = []; /** * 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(); } /** * @return bool whether this widget is associated with a data model. */ protected function hasModel() { return $this->model instanceof Model && $this->attribute !== null; } }