最近在学习Laravel,以为ORM功能很强大,我这里只是简单探索了一点,若是有更好的笔记,还请分享。php
由于重点在于Eloquent ORM,因此路由设置,控制器就不详细描述了,这里直接进入Models么模块。mysql
1.数据库准备(Mysql)sql
在这里须要建立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 VALUES 12 ('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 TABLE 20 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 VALUES 30 (24, 1, 1), 31 (109, 0, 2), 32 (25, 1, 3), 33 (20, 1, 5), 34 (68, 0, 4), 35 (48, 1, 6);
2.配置数据库app
在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.建立UserModelfetch
在app\models下建立UserModel.php spa
1 <?php 2 3 class UserModel extends \Eloquent { 4 protected $table = 'users'; 5 protected $primaryKey = 'iAutoID'; 6 protected $connection = 'user'; 7 }
这样一个User模型就建立成功了,代码很简单。至于其中成员变量的含义,相信都能看得懂,依次表明的是表名称、主键、数据库链接标识(配置文件中的)。code
5.使用UserModelblog
如今你能够在任何地方使用了。控制器,路由里面均可以用。下面就在作个简单的列子:
如今有查询语句:
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 WHERE 10 users.iStatus = 1 11 AND users_ext.sSex = 0 12 ORDER BY 13 users.iCreateTime 14 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 ,以上只是对查询作了一个简单的例子,还有不少须要研究,好比模块之间的关联等等。