您的位置:首页 > 编程语言 > PHP开发

3-10 Yii2框架博客系统定义场景与文章创建逻辑

2018-03-28 14:58 513 查看
标题



1.场景应用
    场景可以限制所应用的字段 可以自行调整修改和增加之间 字段的差异

    
场景的用法   目录/ frontend / models / PostForm.php
/**
* 用常量定义场景
* SCENARIOS_CREATE 创建 音标  [sɪ'nɑ:ri:əʊz]
* SCENARIOS_UPDATE 更新
* 场景的应用就是限制了所应用的字段 可以自行调整
*/
        const SCENARIOS_CREATE = 'create';                        #常量定义场景
const SCENARIOS_UPDATE = 'update';

/**
* 场景设置
*/
public function scenarios(){
$scenarios = [
self::SCENARIOS_CREATE=>['title','content','label_img','cat_id','tags'],
self::SCENARIOS_UPDATE=>['title','content','label_img','cat_id','tags'],
];
return array_merge(parent::scenarios(),$scenarios);
#继承了default的场景 将继承的场景覆盖合并到现在的场景中去。
}

 
控制层写法
/**
* 创建文章
*/
public function actionCreate(){
$model = new PostForm();
// 定义场景
$model->setScenario(PostForm::SCENARIOS_CREATE);        # setScenarios 设置场景
                if ($model->load(Yii::$app->request->post() && $model->validate()) {
if (!$model->create()) {
Yii::$app->session->setFalsh('warning',$model->_lastError);
}else{
return $this->redirect(['post/view','id'=>$model->id]);
}
}

// 获取所有分类
$cat = CatsModel::getAllCats();
return $this->render('create',['model'=>$model,'cat'=>$cat]);
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐