最近在學習Laravel,覺得ORM功能很強大,我這里只是簡單探索了一點,如果有更好的筆記,還請分享。
因為重點在于Eloquent ORM,所以路由設置,控制器就不詳細描述了,這里直接進入Models么模塊。
在這里需要創建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 ,以上只是對查詢做了一個簡單的例子,還有很多需要研究,比如模塊之間的關聯等等。
新聞熱點
疑難解答