Yii2 模型实例化

Yii2.0 中,模型实例化方式有多种,如下:

1. $model = new VPost();
2. $model = VPost::findOne($id);
   等价于
   $customer = Customer::find()->where(['id' => 10])->one();

3. $model =$this->findModel($id);

protected function findModel($id)
{
    if(($model = VPost::findOne($id)) != null){
        return $model;
    }else{
    //抛出异常
        throw new NotFoundHttpException("The requested page does not exist.");
    }
}

//理解底层调用的findOne()静态方法
public static function findOne($condition)
{
    return static::findByCondition($condition)->one();
}

对于实例化空模型,当然选择第一种方式。
第二种和第三种都是通过键(id)实例化一条模型数据,但推荐第三种,第三种方法能够对肯能存在的异常进行处理,对于代码鲁棒性来讲,是个不错的选择!

你可能感兴趣的:(Yii2.0,后端开发)