首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

跟我一起学Laravel-数据库操作和查询构造器

查询操作 基本查询操作 使用sql语句执行select查询操作 从数据表取得所有的数据 从表查询单行/ 从数据表中分块查找数据 从数据表查询某一的列表 聚集函数 指定select查询条件...使用sql执行删除 基本删除操作 悲观锁 事务处理 查看日志记录 其它操作 Laravel执行数据库操作有两种方式,一种是使用\DB外观对象的静态方法直接执行sql查询,另外一种是使用Model类的静态方法...也可以使用命名绑定,推荐使用这种方式,更加清晰一些 $results = DB::select('select * from users where id = :id', ['id' => 1]); 从数据表取得所有的数据...null) 第一个参数为要查询,第二个参数是每一的key $roles = DB::table('roles')->pluck('title', 'name'); foreach ($roles...>update(['votes' => 1]); DB::table('posts')->delete(); }); 回调函数,抛出任何异常都会导致事务回滚 如果需要手动管理事务,则使用如下函数

6.3K30

ERROR 1055 (42000): Expression #1 of SELECT list is not in

文档指出:ONLY_FULL_GROUP_BY的设定,将不允许查询字段包括非聚集 查询mysql服务器版本: select @@version 显示: 5.7.10 #查看sql_mode的语法...的都要在group,或者本身是聚合(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 方法一: 查询mysql 1055错误码发现问题为mysql...的配置如果设置了sql_mode包含ONLY_FULL_GROUP_BY值得话,进行查询时需要将select的字段都包含在group by 。...,没有GROUP BY中出现,那么这个SQL是不合法的,因为不在GROUP BY从句中 NO_AUTO_VALUE_ON_ZERO:该值影响自增长列的插入。...默认设置下,插入0NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该又是自增长的,那么这个选项就有用了。

1.4K40

Laravel 用户认证

例如,Laravel 附带了一个 session 守护程序,它使用 session 存储和 cookie 来维护状态。 提供器定义如何从持久存储检索用户。...Laravel 支持使用 Eloquent 和数据库查询生成器检索用户。不仅如此,你甚至可以根据应用程序的需要自由定制其他提供程序。...: 查询用户:除了password以外的字段都会作为查询条件 比对密码:明文密码即可,因为框架将该值与数据库的散密码进行比较之前会自动加密 以上两个操作都成功才会返回true 源码位置: vendor...由于 Laravel 已经附带了 AuthServiceProvider,因此我们可以将代码放置该提供程序: <?...传递给方法的第二个参数应该是一个闭包,该闭包接收传入的 HTTP 请求并返回用户实例,或者,如果验证失败返回 null: use App\Models\User; use Illuminate\Http

2.1K20

Laravel6.0.4将添加计划任务事件的方法步骤

让我们来看看这个版本的一些亮点新特性: 首先, TestResponse 类添加了一个 assertJsonPath() 断言,对于 JSON 响应中使用针对嵌套属性的点符号断言值,这个断言非常方便..., 'This is my comment', ]); 接着,不论生成器类是否有全局/本地的宏,为了便于断言,向 Eloquent 生成器添加三个新的访问方法: $builder- hasMacro...($name); $builder- getGlobalMacro($name); $builder- hasGlobalMacro($name); 向 BelongsToMany 关联添加另一个访问方法来获取中间表的...) 修复了具有特定文件名的多路径迁移文件 (#29996) 修复了测试向 allowed 异常添加 NotFoundHttpException 的问题(#29975) 变更 使通过 0/false...,才 pendingmail 设置语言环境 (dd1e0a6) 改进了从根目录生成类时按字母顺序对导入进行排序 (#29951) 重构 根目录中将导入更改为 Alpha 排序 (#29954, #29958

1.7K21

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate

文档指出:ONLY_FULL_GROUP_BY的设定,将不允许查询字段包括非聚集 查询mysql服务器版本: select @@version 显示: 5.7.10 #查看sql_mode的语法...的都要在group,或者本身是聚合(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 方法一: 查询mysql 1055错误码发现问题为mysql...的配置如果设置了sql_mode包含ONLY_FULL_GROUP_BY值得话,进行查询时需要将select的字段都包含在group by 。...,没有GROUP BY中出现,那么这个SQL是不合法的,因为不在GROUP BY从句中 NO_AUTO_VALUE_ON_ZERO: 该值影响自增长列的插入。...默认设置下,插入0NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该又是自增长的,那么这个选项就有用了。

1.1K30

ERROR 1055 (42000): Expression #1 of SELECT list is not in

文档指出:ONLY_FULL_GROUP_BY的设定,将不允许查询字段包括非聚集 查询mysql服务器版本: select @@version 显示: 5.7.10 #查看sql_mode的语法 select...的都要在group,或者本身是聚合(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 方法一: 查询mysql 1055错误码发现问题为mysql...的配置如果设置了sql_mode包含ONLY_FULL_GROUP_BY值得话,进行查询时需要将select的字段都包含在group by 。...,没有GROUP BY中出现,那么这个SQL是不合法的,因为不在GROUP BY从句中 NO_AUTO_VALUE_ON_ZERO:该值影响自增长列的插入。...默认设置下,插入0NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该又是自增长的,那么这个选项就有用了。

1.1K20

Laravel Eloquent 模型关联关系(下)

在前面两篇教程,学院君陆续给大家介绍了 Eloquent 模型类支持的七种关联关系,通过底层提供的关联方法,我们可以快速实现模型间的关联,并且进行关联查询。...从性能上来说,渴求式加载更优,因为它会提前从数据库一次性查询所有关联数据,而懒惰式加载每次查询动态属性的时候才会去执行查询,会多次连接数据库,性能上差一些(数据库操作主要开销在数据库连接上,所以开发过程如果想优化性能...: $user = User::findOrFail(1); $posts = $user->posts()->where('views', '>', 0)->get(); 这样,我们就可以过滤出该用户发布的文章浏览数大于...注:实际开发为了提高查询性能,我们往往是 posts 表冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1查询的时候直接取该字段即可,从而提高查询的性能。...`deleted_at` is null limit 1; select * from `users` where `users`.`id` in (?)

19.5K30

通过 Laravel 查询构建器实现复杂的查询语句

你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题, Laravel ,我们只需查询构建器上调用...查询构建器,可以通过方法链轻松搞定: DB::table('posts')->where('id', 'where('views', '>', 0)->get(); 上述代码表示获取...])->get(); or查询 日常查询,or 条件的查询也很常见,查询构建器,可以通过 orWhere 方法来实现: DB::table('posts')->where('id', '<'...null查询 NULL 查询就是判断某个字段是否为空的查询Laravel 查询构建器为我们提供了 whereNull 方法用于实现该查询: DB::table('users')->whereNull(...当某行在另一表没有匹配行,则另一表返回空值,如 select * from posts p full join users u on p.user_id = u.id 交叉连接:也称笛卡尔积,不带

29.9K20

基于 Redis + 资源库模式实现 Laravel 应用缓存功能

9]+'); 浏览器测试这两个路由: 都可以正常返回数据,说明代码重构成功。...你可以到 Redis 命令行客户端去查看对应的缓存数据: 使用 Laravel 自带的缓存组件 当然, Laravel 项目中,如果使用 Redis 作为缓存存储器的话,推荐使用自带的缓存组件,配置好...is_null($this->get($key)); } 它是基于 get 方法实现的,此外, Repository 类还提供很多其他实用的方法,比如 remember: public function...$idsStr . ')'); }); } }); } 整体代码会简洁很多,浏览器访问文章详情页路由,首次访问的时候由于缓存项不存在,所以需要先做数据库查询...你可能已经注意到,Laravel 缓存组件有独立的缓存键前缀,这个前缀可以 config/cache.php 配置: 'prefix' => env('CACHE_PREFIX', Str::slug

2.5K10

Laravel学习教程之路由模块

备注:本文是基于Laravel 5.4版本的路由模块代码进行分析书写; 模块组成 下图展示了路由模块各个文件的关系,并进行简要说明; 剖析 服务提供者 看Laravel模块,首先找ServiceProvider...根据请求找匹配的路由 RouteCollection根据请求的http动作缩小要匹配的路由范围;筛选出来的这些路由中依次遍历,找出第一个符合验证的路由(需要进行较验的验证Route的getValidators...方法声明); 2、将路由绑定到请求上 3、触发RouteMatched事件 初始化的Laravel项目没有对RouteMatched路由匹配事件进行任何的监听器绑定,如有需要,可以自定义监听器,模块的...Url 生成器是什么?...; return response()->download($pathToFile, $name, $headers); 跳转 这里的跳转方法,其实调用的还是跳转器方法,不过是暴露更多的接口,方便调用与使用

80520

护网杯easy laravel ——Web菜鸡的详细复盘学习

所以order=5 接下来确定回显位置 test' union select 1,2,3,4,5# ?...回显位是2 接下来查询password_resets的token test' union select 1,(select token from password_resets where email...拿到token= 1dfde2e1f75253e07d05342d1e39819c126d76e5d96ac348255fd772829f93b0 ,接下来根据路由规则访问密码重置页 ?...这里给出我自己的理解:把魔术方法作为最开始的小组件,然后魔术方法调用其他函数(小组件),通过寻找相同名字的函数,再与类的敏感函数和属性相关联,就是POP CHAIN 。...查看app\Http\Controllers\UploadController.php发现符合:有上传点,check方法没做字符过滤这样就可以参数包含phar://,类型检测也可以通过改后缀名绕过

3.2K30

通过 Laravel 查询构建器实现简单的增删改查操作

通过前面几篇教程的预热,我们已经连接上数据库,创建好了数据表,填充好了数据,接下来,就是 Laravel 应用实现对数据库的增删改查了。...`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL)'); 只不过 Laravel ,我们不推荐这么做,因为这些对数据表结构的操作可以通过数据库迁移功能来实现...DB 门面提供了一个 select 语句帮助我们对数据表进行查询: $users = DB::select('select * from `users`'); 该方法返回包含所有查询结果的 stdClass...更新记录 更新数据库记录通过 update 方法来完成,我们可以方法传入待修改字段及对应修改值数组: $id = 11; $affectedRows = DB::table('users')->where...如果是数值字段的更新的话,Laravel 还为我们提供了 increment 和 decrement 方法用于快速进行数值增减,默认步长是 1,当然你可以通过第二个参数指定步长值: DB::table(

4.1K20

使用laravel的Eloquent模型如何获取数据库的指定

使用Laravel的ORM——Eloquent时,时常遇到的一个操作是取模型的其中一些属性,对应的就是在数据库取表的特定。...如果使用DB门面写查询构造器,那只需要链式调用select()方法即可: $users = DB::table('users')- select('name', 'email as user_email...('name')- get(); 直接将列名数组作为参数传入all()/get()/find()等方法 $users = User::all(['name']); $admin_users = User...']); $user = User::find($user_id, ['name']); $user = User::where('role', 'admin')- first(['name']); 关联查询中使用同理...以上这篇使用laravel的Eloquent模型如何获取数据库的指定就是小编分享给大家的全部内容了,希望能给大家一个参考。

5.6K41
领券