美文网首页
Laravel框架的 Eloquent ORM

Laravel框架的 Eloquent ORM

作者: 黄浪涛 | 来源:发表于2017-06-12 21:44 被阅读0次

    摘自:http://www.cnblogs.com/brudeke/p/4227711.html

    Eloquent ORM 学习笔记

    最近在学习Laravel,觉得ORM功能很强大,我这里只是简单探索了一点,如果有更好的笔记,还请分享。

    因为重点在于Eloquent ORM,所以路由设置,控制器就不详细描述了,这里直接进入Models么模块。

    1.数据库准备(Mysql)

    在这里需要创建users和users_ext两张表,并初始化数据:


    CREATE TABLE

    IF NOT EXISTS users (

    iAutoId INT (11) NOT NULL AUTO_INCREMENT,

    sNmame VARCHAR (20),

    iStatus TINYINT (4),

    iCreateTime INT (11),

    PRIMARY KEY (iAutoId)

    ) ENGINE = INNODB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;

    INSERT INTO users (sNmame, iStatus, iCreateTime)

    VALUES

    ('test1', 1, 1400085387),

    ('test2', 1, 1400085387),

    ('test3', 1, 1400085387),

    ('test4', 1, 1400085387),

    ('test5', 1, 1400085387),

    ('test6', 1, 1400085387);

    CREATE TABLE

    IF NOT EXISTS users_ext (

    iAutoId INT (11) NOT NULL AUTO_INCREMENT,

    iAge DECIMAL (3, 0),

    sSex TINYINT (4),

    iUserID INT (11),

    PRIMARY KEY (iAutoId)

    ) ENGINE = INNODB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;

    INSERT INTO users_ext (iAge, sSex, iUserID)

    VALUES

    (24, 1, 1),

    (109, 0, 2),

    (25, 1, 3),

    (20, 1, 5),

    (68, 0, 4),

    (48, 1, 6);


    2.配置数据库

    在database.php中添加数据库配置:

    1 PDO::FETCH_CLASS,67'default' => 'user',89'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

    这样一个User模型就创建成功了,代码很简单。至于其中成员变量的含义,相信都能看得懂,依次代表的是表名称、主键、数据库连接标识(配置文件中的)。

    5.使用UserModel

    现在你可以在任何地方使用了。控制器,路由里面都可以用。下面就在做个简单的列子:

    现在有查询语句:

    1SELECT2users.sNmame,3users.iCreateTime,4users_ext.iAge,5users_ext.sSex6FROM7users8LEFTJOINusers_extONusers.iAutoId=users_ext.iUserID9WHERE10users.iStatus=111ANDusers_ext.sSex=012ORDERBY13users.iCreateTime14LIMIT0,151

    这里是简单的一个查询语句,接下来就以ORM的形式实现:

    1publicfunctiongetUsers(){23$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();5var_dump($resData->toArray());6exit();7}

    下面是查询结果:

    ok ,以上只是对查询做了一个简单的例子,还有很多需要研究,比如模块之间的关联等等。

    分类:Laravel

    标签:Laravel

    推荐排行榜

    1. Eloquent ORM 之关联查询(2)

    Copyright ©2017 brudeke

    相关文章

      网友评论

          本文标题:Laravel框架的 Eloquent ORM

          本文链接:https://www.haomeiwen.com/subject/jddrqxtx.html