yii2 mysql model_Yii中Model(模型)的创建及使用方法

本文详细介绍了Yii框架中Model的两种类型:CActiveRecord和CFormModel。CActiveRecord用于数据库操作,如Insert、Select、Update和Delete,并通过事务处理数据一致性。CFormModel则用于表单验证,提供数据收集和验证规则的定义。通过这两个模型,开发者可以更好地管理业务逻辑和数据交互。
摘要由CSDN通过智能技术生成

本文实例分析了Yii中Model(模型)的创建及使用方法。分享给大家供大家参考,具体如下:

YII 实现了两种模型,表单模型(CFormModel类)和Active Record模型(CAtiveRecord类),它们都继承自CModel类。 CFormModel代表的数据模型是从HTML表单收集的输入,封装了所有逻辑(如表单的验证和其它业务逻辑,应用到表单的域上)。它能将数据存储在内 存中,或者在一个Active Record的帮助下,存入数据库里。

数据库连接操作

在config/main.php中

'db'=>array(

'connectionString' => 'mysql:host=localhost;dbname=oss',

'emulatePrepare' => true,

'username' => 'root',

'password' => 'hahaha',

'charset' => 'utf8',

//表前缀

'tablePrefix'=>"oss_"

),

打开注释,php要支持pdo

查看操作日志

//显示日志信息,包括sql的查询信息

array(

'class'=>'CWebLogRoute',

),

将注释打开

一. 基于CActiveRecord的Model

Active Record(AR) 是一种设计模式,用面向对象的方式抽象的访问数据,Yii中,每一个AR对象的实例都可以是CActiveRecord类或者它的子类。它包装了数据库表 或视图中的一行记录,并封装了所有的逻辑和风闻数据库的细节,有大部分的业务逻辑,必须使用这种模型。数据库表中一行每列字段的值对应AR对象的一个属 性。它将表映射到类,行映射到对象,列则映射到对象的数据。也就是说每一个Active Record类的实例代表了数据库中表的一行。但一个 Active Record类不单单是数据库表中的字段跟类中属性的映射关系。它还需要在这些数据上处理一些业务逻辑,定义了所有对数据库的读写操作。

1) 声明一个基于CActiveRecord 类的Model

class Post extends CActiveRecord

{

public static function model($className=__CLASS__)

{

return parent::model($className);

}

public function tableName()

{

return '{ {post}}';

}

public function primaryKey()

{

return 'id';

// return array('pk1', 'pk2');

}

}

2) 使用父类的方法完成数据库操作

(1) Insert:

$post=new Post;

$post->title='sample post';

$post->content='content for the sample post';

$post->create_time=time();

$post->save();

(2) Select: 常用几种方法

// find the first row satisfying the specified condition

$post=Post::model()->find($condition,$params);

// find the row with the specified primary key

$post=Post::model()->findByPk($postID,$condition,$params);

// find the row with the specified attribute values

$post=Post::model()->findByAttributes($attr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值