首页 > 代码库 > Eloquent ORM学习笔记
Eloquent ORM学习笔记
最近在学习Laravel,觉得ORM功能很强大,我这里只是简单探索了一点,如果有更好的笔记,还请分享。
因为重点在于Eloquent ORM,所以路由设置,控制器就不详细描述了,这里直接进入Models么模块。
1.数据库准备(Mysql)
在这里需要创建users和users_ext两张表,并初始化数据:
1 CREATE TABLE 2 IF NOT EXISTS users ( 3 iAutoId INT (11) NOT NULL AUTO_INCREMENT, 4 sNmame VARCHAR (20), 5 iStatus TINYINT (4), 6 iCreateTime INT (11), 7 PRIMARY KEY (iAutoId) 8 ) ENGINE = INNODB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1; 9 10 INSERT INTO users (sNmame, iStatus, iCreateTime)11 VALUES12 (‘test1‘, 1, 1400085387),13 (‘test2‘, 1, 1400085387),14 (‘test3‘, 1, 1400085387),15 (‘test4‘, 1, 1400085387),16 (‘test5‘, 1, 1400085387),17 (‘test6‘, 1, 1400085387);18 19 CREATE TABLE20 IF NOT EXISTS users_ext (21 iAutoId INT (11) NOT NULL AUTO_INCREMENT,22 iAge DECIMAL (3, 0),23 sSex TINYINT (4),24 iUserID INT (11),25 PRIMARY KEY (iAutoId)26 ) ENGINE = INNODB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;27 28 INSERT INTO users_ext (iAge, sSex, iUserID)29 VALUES30 (24, 1, 1),31 (109, 0, 2),32 (25, 1, 3),33 (20, 1, 5),34 (68, 0, 4),35 (48, 1, 6);
2.配置数据库
在database.php中添加数据库配置:
1 <?php 2 3 return [ 4 5 ‘fetch‘ => PDO::FETCH_CLASS, 6 7 ‘default‘ => ‘user‘, 8 9 ‘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 <?php2 3 class UserModel extends \Eloquent {4 protected $table = ‘users‘;5 protected $primaryKey = ‘iAutoID‘;6 protected $connection = ‘user‘;7 }
这样一个User模型就创建成功了,代码很简单。至于其中成员变量的含义,相信都能看得懂,依次代表的是表名称、主键、数据库连接标识(配置文件中的)。
5.使用UserModel
现在你可以在任何地方使用了。控制器,路由里面都可以用。下面就在做个简单的列子:
现在有查询语句:
1 SELECT 2 users.sNmame, 3 users.iCreateTime, 4 users_ext.iAge, 5 users_ext.sSex 6 FROM 7 users 8 LEFT JOIN users_ext ON users.iAutoId = users_ext.iUserID 9 WHERE10 users.iStatus = 111 AND users_ext.sSex = 012 ORDER BY13 users.iCreateTime14 LIMIT 0,15 1
这里是简单的一个查询语句,接下来就以ORM的形式实现:
1 public function getUsers(){2 3 $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();5 var_dump($resData->toArray());6 exit();7 }
下面是查询结果:
ok ,以上只是对查询做了一个简单的例子,还有很多需要研究,比如模块之间的关联等等。
Eloquent ORM学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。