Eloquent ORM學習筆記

來源:互聯網
上載者:User
  最近在學習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學習筆記,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.