Laravel5.3中的原生+查询构造器+Eloquent ORM 常用整理_Leon0204的博客-CSDN博客


本站和网页 https://blog.csdn.net/qq_28018283/article/details/53113642 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Laravel5.3中的原生+查询构造器+Eloquent ORM 常用整理_Leon0204的博客-CSDN博客
Laravel5.3中的原生+查询构造器+Eloquent ORM 常用整理
Leon0204
于 2016-11-10 10:56:33 发布
9567
收藏
分类专栏:
Lavarel
php
文章标签:
laravel
php
orm
事务
select
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_28018283/article/details/53113642
版权
Lavarel
同时被 2 个专栏收录
16 篇文章
0 订阅
订阅专栏
php
40 篇文章
0 订阅
订阅专栏
一。 db门面方法
use Illuminate\Support\Facades\DB;
查:$users = DB::select('select * from users where active = ?', [1]);
更新:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
插入:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
删除:$deleted = DB::delete('delete from users’);
无返回值:DB::statement('drop table users’);
事务:DB::beginTransaction();
你可以通过rollBack方法回滚事务:
DB::rollBack();
最后,你可以通过commit方法提交事务:
DB::commit();
二 查询构造器,table()  可加多个约束条件
1 查询所有信息
$users = DB::table('users')->get();
2 查询name为John的第一行
$user = DB::table('users')->where('name', 'John')->first();
3 查询name为John的列value为email的集合
$email = DB::table('users')->where('name', 'John')->value('email');
4获取单列title的列集合
 $titles = DB::table('roles')->pluck('title');
5 聚合函数 count max min avg sum 
$users = DB::table('users')->count();
$price = DB::table('orders')->max('price');
6 -》distinct()
7 where的用法
-》where(’xxx’,’符号’,’值’);
8 ->orderby(‘列名’,’desc’);
9  插入
DB::table('users')->insert([
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
]);
10可以反回自增id   
$id = DB::table('users')->insertGetId(
    ['email' => 'john@example.com', 'votes' => 0]
);
11 更新
DB::table('users')
            ->where('id', 1)
            ->update(['votes' => 1]);
12更新数字  默认为1 decrement
DB::table('users')->increment('votes', 5);
13更新数字加字段组合
DB::table('users')->increment('votes', 1, ['name' => 'John']);
14 删除
DB::table('users')->delete();
DB::table('users')->where('votes', '>', 100)->delete();
三 Eloquent ORM  对象关系映射(Object Relational Mapper)工具
模型中:use Illuminate\Database\Eloquent\Model
 这里在模型中还可以做如下的设置:
设置关联模型的表
protected $table = ‘my_flights’;
设置是否表中有create_at 和update_at
public $timestamps = fasle;
设置日期存储格式
protected $dateFormat = 'U';
控制器中:书写orm 
use App\Flight   as flight;(敲黑板)
1  获取 flight模型关联表的所有数据 ——all方法返回所有结果
$flights = flight::all();
$flights = flight::where(‘id’,’148’)->get(); //获取id为148 的所有列 
$flights = flight::orderby(’time’,’desc’)->get();//获取所有列,按照time字段倒序排序
orm本质也是查询构造器,所以可以使用查询构造器中所有的方法  ,不一一列举
2 没找到就报错:findorfail
$list = article::find(148);   返回null
$list = article::findorFail(148);   返回404 

插入
$Article = new article;
        $Article->title = '张帆';
        $Article->save();
创建模型实例,设置对应的字段属性。save 
插入b  怎么突然开车了 = =。
$article = article::create(['title' => '何国龙']);
这样是不行的,需要在model里面声明一下可以批量操作的字段。fillable就像是白名单
protected $fillable = [’title’];
并且这样会返回插入的实例 。
对应的黑名单就是 guarded 。
可以 protected $guraded = []; 来快速设置所有字段都可以自由插入。
插入c  
$flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);
如果不存在name为flight 10 的记录则插入 。
4 更新
$article = article::find(3);
        $article->title = 'xxx';
        $article->save();
创建模型实例,这里与插入不同的是,需要先获取想要更新的地方的模型。作为对象。然后进行更新。
article::where('title', 'xxx')
            ->where('user_id', '148')
            ->update(['body' => 185]);
更新title为xxx 且 user_id为148 的记录 body更新为185 

删除a
$article = article::find(7);
        $article->delete();
删除b
article::destroy(5);
删除c
$deletedRows = App\Flight::where('active', 0)->delete();
总结:
DB适合用于对性能要求高或者业务逻辑简单的项目,ORM适合业务逻辑比较复杂的项目。
Leon0204
关注
关注
点赞
收藏
打赏
评论
Laravel5.3中的原生+查询构造器+Eloquent ORM 常用整理
一。 db门面方法use Illuminate\Support\Facades\DB;查:$users = DB::select('select * from users where active = ?', [1]);更新:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']
复制链接
扫一扫
专栏目录
laravel 执行原生sql
记录编程生活
08-16
807
1.插入数据
DB::insert('insert into test (id, name, email, password) values (?, ?, ? , ? )',[1, 'Laravel','laravel@test.com','Laravel']);
2.查询语句
$user = DB::select('select * from test where id = ?', [1]);
//我们还 可以看到在执行查询的时候使用了参数绑定,以避免SQL注入。除此之//外还可以使用命名绑
四:条件构造器和常用接口
最新发布
m0_56379670的博客
11-28
MyBatis-Plus中的条件构造器和常用接口
参与评论
您还未登录,请先
登录
后发表或查看评论
20 个 Laravel Eloquent 技巧和窍门
Born_proud的博客
11-22
101
Eloquent ORM 似乎是一个简单的机制,但在幕后,有很多半隐藏的功能和鲜为人知的方法来实现更多功能。在本文中,我将向您展示一些技巧。
1. 增量和减量
要代替以下实现:
$article = Article::find($article_id);
$article->read_count++;
$article->save();
你可以这样做:
$article = Article::find($article_id);
$article->increment('read_cou
Laravel 多条件模糊查询
soeben的博客
11-09
1万+
在对列表进行查询的时候经常需要定义多个搜索条件对数据进行搜索,下面是一种使用laravel查询构造器查询的方法,其中姓名和地址为模糊查询手机号和性别为精确查询//search_arr为查询条件的数据,示例数据如下
$search_arr=[
['type'=>'姓名','value'=>'王'],
['type'=>'地址','value'=>'王家村'],
['type'=
Laravel 原生表达式
懒虫的博客
06-16
741
原生表达式
有时候你可能需要在查询中使用原生表达式。你可以使用 DB::raw 创建一个原生表达式:
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
laravel 原生查询 whereraw_Laravel DB查询语句构造器
weixin_35642839的博客
12-21
555
文档日期:2019年10月30日链接在这里 https://learnku.com/docs/laravel-cheatsheet/5.8//定义一个Eloquent模型
class User extends Model{}
// 生成一个Eloquent模型
php artisan make:model User
// 生成一个 Eloquent模型的时候,顺便生成迁移文件
php arti...
Laravel使用原生sql语句并调用
amazingdyd的博客
06-06
1万+
有一些sql语句比较复杂,用构造器还不如直接用sql来的方便,我们在laravel中使用原生语句,首先要在开头use DB,然后:$arr = DB::select("select id,sum(parents+1) as total_people from orders where game_id=6 and pay_status=1 and hotel_id=5");接下来,我们程序里怎么获取...
Laravel 使用 查询构造器配合原生sql语句 查询
小东子的博客
03-16
7225
Laravel 原生查询查询构建器原生查询分页
首先说一下本人使用的版本: 5.5
在很多复杂查询时, 往往需要原生语句进行查询, 在 laravel 中, 我们可以这样使用原生查询
$user = DB::select('select * from users where id= ?', [1])
查询构建器 https://laravel-china.org/docs/la...
Laravel 查询构造器的使用(一)
陌花拟的博客
04-12
511
使用查询构造器对数据库的 增 - 删 - 改 操作
//使用查询构造器新增数据
public function query1()
$bool = DB::table('student')->insert(
['name' => 'mohuani', 'age' => 19]
);
...
Laravel框架学习(使用DB门面操作数据库 原生SQL)
野蛮秘籍
03-11
2万+
1、连接数据库
Laravel中数据库配置文件为config/database.php,打开该文件,默认内容如下:<?phpreturn [
//默认返回结果集为PHP对象实例
//具体返回结果可参考PDO.php(php PDO文档)
// 数组格式 FETCH_ASSOC
'fetch' => PDO::FETCH_CLASS,
//默认数据库连接为my
laravel(五)-laravel中的数据库原始查找
人生·工作结果 = 能力*热情*思维方式
05-30
759
laravel提供三种数据库操作方式:
DB facade(原始查找)
查询构造器
Eloquent ORM
laravel数据库配置文件应用的数据库配置位于 config/database.php 文件中。laravel中的数据库原生操作(DB facade)配置好数据库连接后,就可以使用 DB 来运行查询。 DB 为每种查询提供了相应方法: select, update, insert, del
laravel with 查询列表限制条数
weixin_34265814的博客
10-24
1276
1.需求
需求,查询文章列表,以及文章列表下的评论。但是每篇文章评论只需要查询出2条即可(一篇文章可能有几百个评论)。
2.实现
配置关联模型
//---------------------Article模型的关联表配置如下----------------------------------
public function comments(){
return $this-&g...
Laravel Eloquent关联模型查询设置查询条件与指定字段
hhhzua的专栏
05-13
1万+
1、直接获取关联模型:
$user-&amp;amp;gt;posts()-&amp;amp;gt;where('created_at‘,'&amp;amp;gt;',date('Y-m-d H:i:s',time()))-&amp;amp;gt;orderBy('collection')-&amp;amp;gt;get(['id','title','content']);
2、渴求式加载关联模型:
$users-lo
Laravel5 Eloquent ORM 查询
lijiaxing_Lee的博客
04-02
460
Subject.php
<?php
namespace App\Models;
/**
* 题目表
* Class Subject
* @package App\Models
*/
class Subject extends BaseModel {
/**
* 数据表
*/
protected $table = 'su...
laravel多条件查询(and,or嵌套查询)
热门推荐
EFFORTS && VALUE
05-18
2万+
说明
在日常开发中,经常会需要写多条件的数据库查询语句。在使用框架的情况下,单纯使用原生sql查询会导致结果与model无法对应,也就没有办法使用框架的一些便利的方法对结果集进行处理。尤其是laravel提供了非常多的对查询结果集进行处理的工具。所以最好是使用laravel提供的ORM进行多条件的数据库查询。
问题
比如需要执行这样一条sql语句
select
from
...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:数字20
设计师:CSDN官方博客
返回首页
Leon0204
CSDN认证博客专家
CSDN认证企业博客
码龄8年
暂无认证
239
原创
1万+
周排名
5666
总排名
108万+
访问
等级
8826
积分
1756
粉丝
238
获赞
84
评论
683
收藏
私信
关注
热门文章
Sphinx 实现海量数据的快速查询
98470
mac chrome 强制刷新浏览器缓存
71168
Mysql时间差8个小时?修改Mysql时区
54227
mac大小写切换快捷键,程序猿向
50953
configure: error: Cannot find php-config. Please use --with-php-config=PATH 错误的解决方案
38465
分类专栏
Kubernetes深入
15篇
AI
1篇
ElasticSearch分布式查询
24篇
Redis源码阅读日记
6篇
深度学习
1篇
Mongo
1篇
大数据
6篇
Leon的PHP7源码阅读笔记
2篇
Lavarel
16篇
php
40篇
linux
53篇
App
代码规范
10篇
js
2篇
thinkphp
1篇
html
6篇
杂谈
11篇
ubantu
7篇
sql
2篇
seaslog
mac
9篇
Redis
12篇
微信
2篇
Ios
3篇
苹果电脑
5篇
Docker
10篇
python
26篇
Lua
3篇
Git/Svn
3篇
Mysql
11篇
ElasticSearch
9篇
Java
10篇
Go
3篇
分布式
4篇
LeetCode
38篇
Kubernetes
6篇
事务
1篇
MVCC
1篇
最新评论
ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient
Tastill:
你解决了吗?我这边也是setting之后XPackClientPlugin.class获取不到
Keras TensorFlow 验证码识别(附数据集)
Sameal゜゜:
博主,怎么拿到数据集
ElasticSearch 性能压榨优化-segment
啥都不晓得的菜鸡:
博主,请教一下,你们T级别一次_forcemerge 大概要多久,我们大概200多g;我自己测试了一下200多M,_forcemerge 一次要7-8秒
Screen kill 的两种办法
titer1:
谢谢哈
ElasticSearch 性能压榨优化-segment
qq_37944457:
好像明白了 是给fielddata的越小 给到parent的就越多?
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
深入 Kubernetes之——容器网络
深入 Kubernetes之离线任务Job 与 CronJob
深入Kubernetes 之 DaemonSet :容器化守护进程
2022年4篇
2021年2篇
2020年23篇
2019年49篇
2018年75篇
2017年63篇
2016年32篇
目录
目录
分类专栏
Kubernetes深入
15篇
AI
1篇
ElasticSearch分布式查询
24篇
Redis源码阅读日记
6篇
深度学习
1篇
Mongo
1篇
大数据
6篇
Leon的PHP7源码阅读笔记
2篇
Lavarel
16篇
php
40篇
linux
53篇
App
代码规范
10篇
js
2篇
thinkphp
1篇
html
6篇
杂谈
11篇
ubantu
7篇
sql
2篇
seaslog
mac
9篇
Redis
12篇
微信
2篇
Ios
3篇
苹果电脑
5篇
Docker
10篇
python
26篇
Lua
3篇
Git/Svn
3篇
Mysql
11篇
ElasticSearch
9篇
Java
10篇
Go
3篇
分布式
4篇
LeetCode
38篇
Kubernetes
6篇
事务
1篇
MVCC
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
Leon0204
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值