文档章节

YII 字段映射

别人说我名字很长
 别人说我名字很长
发布于 2013/12/29 23:56
字数 236
阅读 1289
收藏 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
博文 254
码字总数 103692
作品 0
济南
程序员
Yii学习笔记:实现类似于ThinkPHP的模型字段映射,字段别名

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

吾爱
2013/12/29
0
2
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
PHP 命名空间 namespace / 类别名 use / 框架自动载入 机理的

相比 PHP5.2 版本 PHP5.3 新增了三大主要新特性 命名空间 延迟静态绑定 lambda匿名函数 命名空间的出现也使PHP可以更加合理的组织项目结构,同时通过命名空间和自动载入机制一大批 PHP 的 MV...

big_cat
2016/02/02
5.4K
0
【翻译】Yii2 第2章 用Yii2创建自定义应用(第2部分)

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

zcgly
2015/09/29
383
0

没有更多内容

加载失败,请刷新页面

加载更多

面向对象设计原则(OOP)

单一职责原则(Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。 核心原则:低耦合,高内聚。 一个类,应该只有一个引起它变化的原因,也就是...

gackey
38分钟前
2
0
C++ 锁

C++提供了两种常用的锁,std::lock_guard<Lockable &T>和std::unique_lock<Lockable &T>。通常使用场景下,这两个锁用法一致。即,在构造锁对象时上锁,在析构锁对象时解锁。使用户从上锁/解...

yepanl
42分钟前
2
0
Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
2
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
2
0
TiDB 在爱奇艺的应用及实践

爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方...

TiDB
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部