mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-17 14:57:23 +08:00
InputWidget base class
This commit is contained in:
59
framework/yii/jui/InputWidget.php
Normal file
59
framework/yii/jui/InputWidget.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright Copyright (c) 2008 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
namespace yii\jui;
|
||||
|
||||
use Yii;
|
||||
use yii\base\Model;
|
||||
use yii\base\InvalidConfigException;
|
||||
|
||||
/**
|
||||
* InputWidget is the base class for all jQuery UI input widgets.
|
||||
*
|
||||
* @author Alexander Kochetov <creocoder@gmail.com>
|
||||
* @since 2.0
|
||||
*/
|
||||
class InputWidget extends Widget
|
||||
{
|
||||
/**
|
||||
* @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;
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the widget.
|
||||
* If you override this method, make sure you call the parent implementation first.
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
if (!$this->hasModel() && $this->name === null) {
|
||||
throw new InvalidConfigException("Either 'name' or 'model' and 'attribute' properties must be specified.");
|
||||
}
|
||||
parent::init();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean whether this widget is associated with a data model.
|
||||
*/
|
||||
protected function hasModel()
|
||||
{
|
||||
return $this->model instanceof Model && $this->attribute !== null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user