Laravel框架的 Eloquent ORM

摘自:http://www.cnblogs.com/brudeke/p/4227711.html

Eloquent ORM 学习笔记

最近在学习Laravel,觉得ORM功能很强大,我这里只是简单探索了一点,如果有更好的笔记,还请分享。

因为重点在于Eloquent ORM,所以路由设置,控制器就不详细描述了,这里直接进入Models么模块。

1.数据库准备(Mysql)

在这里需要创建users和users_ext两张表,并初始化数据:


CREATE TABLE

IF NOT EXISTS users (

iAutoId INT (11) NOT NULL AUTO_INCREMENT,

sNmame VARCHAR (20),

iStatus TINYINT (4),

iCreateTime INT (11),

PRIMARY KEY (iAutoId)

) ENGINE = INNODB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;

INSERT INTO users (sNmame, iStatus, iCreateTime)

VALUES

('test1', 1, 1400085387),

('test2', 1, 1400085387),

('test3', 1, 1400085387),

('test4', 1, 1400085387),

('test5', 1, 1400085387),

('test6', 1, 1400085387);

CREATE TABLE

IF NOT EXISTS users_ext (

iAutoId INT (11) NOT NULL AUTO_INCREMENT,

iAge DECIMAL (3, 0),

sSex TINYINT (4),

iUserID INT (11),

PRIMARY KEY (iAutoId)

) ENGINE = INNODB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;

INSERT INTO users_ext (iAge, sSex, iUserID)

VALUES

(24, 1, 1),

(109, 0, 2),

(25, 1, 3),

(20, 1, 5),

(68, 0, 4),

(48, 1, 6);


2.配置数据库

在database.php中添加数据库配置:

1 PDO::FETCH_CLASS,67'default' => 'user',89'connections' =>[10'user' =>[11'driver'    => 'mysql',12'host'      => 'localhost:3306',13'database'  => 'test',14'username'  => 'root',15'password'  => 'root',16'charset'  => 'utf8',17'collation' => 'utf8_unicode_ci',18'prefix'    => '',19],20]21];

3.创建UserModel

在app\models下创建UserModel.php

1

这样一个User模型就创建成功了,代码很简单。至于其中成员变量的含义,相信都能看得懂,依次代表的是表名称、主键、数据库连接标识(配置文件中的)。

5.使用UserModel

现在你可以在任何地方使用了。控制器,路由里面都可以用。下面就在做个简单的列子:

现在有查询语句:

1SELECT2users.sNmame,3users.iCreateTime,4users_ext.iAge,5users_ext.sSex6FROM7users8LEFTJOINusers_extONusers.iAutoId=users_ext.iUserID9WHERE10users.iStatus=111ANDusers_ext.sSex=012ORDERBY13users.iCreateTime14LIMIT0,151

这里是简单的一个查询语句,接下来就以ORM的形式实现:

1publicfunctiongetUsers(){23$select= 'users.sNmame,users.iCreateTime,users_ext.iAge,users_ext.sSex';4$resData= UserModel::selectRaw($select)->leftJoin('users_ext','users.iAutoId','=','users_ext.iUserID')->where('users.iStatus','=',1)->where('users_ext.sSex','=',0)->skip(0)->limit(1)->get();5var_dump($resData->toArray());6exit();7}

下面是查询结果:

ok ,以上只是对查询做了一个简单的例子,还有很多需要研究,比如模块之间的关联等等。

分类:Laravel

标签:Laravel


推荐排行榜

1. Eloquent ORM 之关联查询(2)

Copyright ©2017 brudeke

你可能感兴趣的:(Laravel框架的 Eloquent ORM)