文档章节

YII 字段映射

别人说我名字很长
 别人说我名字很长
发布于 2013/12/29 23:56
字数 236
阅读 1299
收藏 1
YII 字段映射

首先在模型中定义字段映射的方法

class Arctype extends CActiveRecord{
    //定义字段映射
    public $_map = array(
        'typename'=>'a1',
        'topid'=>'a2',
        'sort'=>'a3',
        'shuxing'=>'a4',
    );
    //定义字段映射的方法
    public function mymap($data){
        foreach($data as $k=>$v){
            if(in_array($k,$this->_map)){
                $key = array_search($k,$this->_map);
                $map[$key] = $v;
            }else{
                $map[$k] = $v;
            }
        }
        $this->attributes = $map;
    }
    //使用mymap方法时必须定义rules方法进行安全过滤
    function rules() {
        return array(
            array('typename','required','message'=>'栏目名必须填写'), 
            array('topid','required','message'=>'上级栏目必须填写'),
        );  }
   //使用mymap2方法时不用定义rules方法进行安全过滤
   public function mymap2($data){
        foreach($data as $k=>$v){
            if(in_array($k,$this->_map)){
                $key = array_search($k,$this->_map);
                $this->$key = addslashes($v);
            }else{
                $this->$k = addslashes($v);
            }
        }
    }



在控制器中使用字段映射填充字段

class ArctypeController extends Controller{
    public function actionindex(){
        $data = array(
           'a1'=>'mya1',
           'topid'=>'55',
           'a3'=>'66',
           'shuxing'=>'77', 
        );
        $model = new Arctype();
        $model->mymap($data);//使用字段映射填充字段
        $this->dump($model->attributes);
        $model->save()       
    }


© 著作权归作者所有

共有 人打赏支持
别人说我名字很长
粉丝 55
博文 255
码字总数 105359
作品 0
济南
程序员
私信 提问
YII2.0 AcriveRecord的简单使用

这篇文章我们来看看在 Yii2 之中的 Active Record,为啥要将 Active Record 单独出来说呢?因为个人认为这是 Yii(不管是 Yii1.1 还是 Yii2)最强大的一部分功能之一,何况又遇上在 Yii2 中其...

bieru
2015/05/10
0
0
yii2开发中19条推荐实践(阿北总结)

虽然每个人的编程风格不同,但是有些建议能让你的代码更加规范和稳定,本次就我这次网站更新总结如下几点,希望对你的yii2学习和使用有所帮助。 环境说明 服务器环境: CentOS 开发环境及IDE...

阿北2017
06/02
0
0
Yii学习笔记:实现类似于ThinkPHP的模型字段映射,字段别名

在TP中,我们只要在模型类中定义一个 protected $_map = array( 这样,我们前端模板中使用 <input type=text name="name"/> 在模型收集表单数据时会自动将值同时映射到username字段上。...

吾爱
2013/12/29
0
2
【翻译】Yii2 第2章 用Yii2创建自定义应用(第2部分)

将Yii框架引入我们的应用 现在,我们拥有了可以工作的全套基础设施,让我们回到在设计阶段时定义的第一个特性,让我们先为它写一个验收测试。 第一个端到端测试 端到端验收测试的要点就是,我...

zcgly
2015/09/29
383
0
yii2 model 验证规则rules 一条规则验证失败立即返回不继续验证其他字段

yii2 model 验证规则rules 一条规则验证失败立即返回不继续验证其他字段 Mode::rules(); public function rules(){ } username 为空立即返回error ,不去验证password和age。同理age如果为空...

Sturn
2016/07/24
347
2

没有更多内容

加载失败,请刷新页面

加载更多

如何处理JavaScript 中的货币值?

 金钱无处不在。   无论在银行应用程序、电子商务网站还是证券交易所平台,我们每天都在与金钱互动。我们也越来越依赖技术来处理问题。   然而,关于如何以编程处理货币价值尚无共识。虽...

数据星河
11分钟前
3
0
并发中的volatile

1. 概述 由于线程有本地内存的存在, 一个线程修改的共享变量不会及时的刷新到主内存中, 使得另一个线程读取共享变量时读取到的仍旧是旧值, 就导致了内存可见性问题. 现在volatile就可以解决这...

Ala6
12分钟前
6
0
三大特性之---封装

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能...

architect刘源源
14分钟前
2
0
设计模式 之 策略模式

设计模式 之 策略模式 定义 提供几个算法策略,选择其中一个策略去执行。 优点 由于将算法封装成单独的策略,策略可以灵活切换。 扩展性好,符合开闭原则。 缺点 策略多,类也会变多 策略类需...

GMarshal
15分钟前
2
0
HBase集群监控的那些事儿

为什么需要监控? 为了保证系统的稳定性,可靠性,可运维性。 掌控集群的核心性能指标,了解集群的性能表现; 集群出现问题时及时报警,便于运维同学及时修复问题; 集群重要指标值异常时进行...

微笑向暖wx
15分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部