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

标题

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]);
}

 


 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值