最近在學習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 ,以上只是對查詢作了一個簡單的例子,還有不少須要研究,好比模塊之間的關聯等等。