首页 > 其他 > 详细

Yii2 Working with Relational Data at ActiveDataProvider

时间:2015-03-09 10:30:01      阅读:260      评论:0      收藏:0      [点我收藏+]

Yii2 Working with Relational Data at ActiveDataProvider

namespace common\models;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use common\models\Recording;

/**
 * RecordingSearch represents the model behind the search form about `common\models\Recording`.
 */
class RecordingSearch extends Recording
{
    public $integerReg = ‘/^\s*[+-]?\d+\s*$/‘;
    
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [[‘book_id‘], ‘integerAndString‘],
        ];
    }
    
    public function integerAndString($attribute, $params)
    {
        if (!preg_match($this->integerReg, $this->$attribute) && !is_string($this->$attribute)) {
            $this->addError($attribute, Yii::t(‘yii‘, ‘{attribute} must be an integer or a string.‘, [‘attribute‘=>$this->getAttributeLabel($attribute)]));
        }
    }

    /**
     * Creates data provider instance with search query applied
     *
     * @param array $params
     *
     * @return ActiveDataProvider
     */
    public function search($params)
    {
        // ......
        
        if (empty($this->book_id) || preg_match($this->integerReg, $this->book_id)) {
            $query->andFilterWhere([‘book_id‘ => $this->book_id]);
        } else {
            $query->joinWith(‘book‘)->andFilterWhere([‘like‘, Book::tableName().‘.name‘, $this->book_id]);
        }

        // ......
    }
}

 

Yii2 Working with Relational Data at ActiveDataProvider

原文:http://www.cnblogs.com/mztest/p/4322833.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!