博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel Eloquent ORM 数据model操作
阅读量:6177 次
发布时间:2019-06-21

本文共 2058 字,大约阅读时间需要 6 分钟。

Laravel ORM 数据model操作

 
注意:ORM关联操作最后一定要记得带get()方法!否则会获取不到数据,为null
如:   posts表      comments表 
     id        id
    contents     post_id
            comment
 
  post模型内定义一对多关系hasMany
  
1     //定义关联关系2    public function comments(){3         return $this->hasMany(Comments::class,'post_id','id');4     }
1 //容器内调用模型获得数据, $id 为Posts中主键id2 public function getComments($id){3       return Posts::find($id)->comments()->get();  4 }

 

 
1.ORM操作需要创建对应的model
        
class User 
extends Eloquent
 
2.有两种方式使用数据操作对象
           a. 使用new关键字创建对象后执行对象的方法
           b. 直接调用static方法(实际并发静态方法,而是fascade生成的)
 
3.常用数据操作
       a.  User
:
:find(
1)    查找单条数据
       b.  User
:
:all()        查找所有数据
       c.   User
:
:find(
1)
-
>delete()    删除单条数据
       d.    User
:
:destory(
array(
1,
2,
3))    删除单条或多条数据
       e.    User
:
:save()        保存数据
        f.    User
:
:first()        取第一条数据
       g.    Album
:
:where(
'artist'
'='
'Matt Nathanson'
-
>update(
array(
'artist' 
=
> 
'Dayle Rees'));    指定查询条件,更新数据
        h.  User
:
:truncate()    清空数据表,危险操作
        i.   Album
:
:where(
'artist'
'='
'Something Corporate')
-
>get(
array(
'id',
'title'));    配合查询条件获取多条数据
       j. Album
:
:pluck(
'artist');            返回表中该字段的第一条记录
       k. Album
:
:lists(
'artist');                返回一列数据
       l.   Album
:
:where(
'artist'
'='
'Something Corporate')
-
>toSql();     获取查询的sql语句,仅用于条件,不能用户带get()之类的带查询结果的查询中
注:直接使用return 查询结果为json格式的数据
       这里使用的User为model名称
 
条件查询:
   1. 最普通的条件查询 User::where('字段名','查询字符','限制条件')     例:Album::where('title', 'LIKE', '...%')
   2. 多条件查询,使用多个where    Album::where('title', 'LIKE', '...%')->where('artist', '=', 'Say Anything')->get();
   3. 或查询操作使用orWhere(),使用方法通where
    4.直接用sql语句写查询条件    Album::whereRaw('artist = ? and title LIKE ?', array('Say Anything', '...%'))
    5. 其他查询方法
       whereIn(),whereBetween(),whereNested()子查询,orWhereNested(),whereNotIn(),whereNull(),whereNotNull()
    6. 快捷方式  whereUsername('king')  查询'username' = 'king'的数据,默认系统无此方法,username为字段名称
 
结果排序:
  使用order关键字:
     Album
:
:where(
'artist'
'='
'Matt Nathanson')
-
>orderBy(
'year')
-
>get();   默认asc
    orderBy(
'year'
'desc')
 
限制结果数量
    take()方法
    Album::take(2)->get();                          //select * from `albums` limit 2
 
指定偏移
    Album::take(2)->skip(2)->get();        //select * from `albums` limit 2 offset 2

 

转载于:https://www.cnblogs.com/ggkxg/p/7380308.html

你可能感兴趣的文章
nginx+tomcat+redis实现session共享
查看>>
UWP VirtualizedVariableSizedGridView 支持可虚拟化可变大小Item的View(二)
查看>>
rsync 介绍
查看>>
做一个合格的Team Leader -- 基本概念
查看>>
leetcode 190 Reverse Bits
查看>>
阿里巴巴发布AliOS品牌 重投汽车及IoT领域
查看>>
OPENCV图像处理(二):模糊
查看>>
glassfish4系统启动脚本
查看>>
VMware 虚拟化编程(13) — VMware 虚拟机的备份方案设计
查看>>
独家 | 一文读懂推荐系统知识体系-下(评估、实战、学习资料)
查看>>
UIEvent UIResponder UI_04
查看>>
从非GP到GP
查看>>
云计算助力CDN加速
查看>>
iphone开发之多线程NSThread和NSInvocationOperation
查看>>
MFMailComposeViewController 发邮件
查看>>
velocity 模板解析类
查看>>
HTTP以及HTTPS协议
查看>>
Browser:浏览器版本判断类
查看>>
MyEclipse Servers视窗出现“Could not create the view: An unexpected exception was thrown”错误解决办法...
查看>>
伪类和伪元素
查看>>