首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

完善你的Laravel异常处理

注册全局的错误处理器方法,在方法中捕获到错误后将错误转化成异常再重新抛出,这样项目中所有的代码没有被正确执行时都能抛出异常实例了。...、短信) 在这里我一些开发中常遇到异常,并说明他们是在什么情况下被抛出的,平时编码中一定要注意在程序里捕获这些异常做好异常处理才能让程序更健壮。...Illuminate\Database\QueryException Laravel中执行SQL语句发生错误时会抛出此异常,它也是使用率最高的异常,用来捕获SQL执行错误,比方执行Update语句时很多人喜欢判断...( find和 first找不到数据时会返回NULL)。...($exception instanceof ModelNotFoundException && $request->expectsJson()) { //捕获路由模型绑定在数据库中找不到模型后抛出

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

更新依赖遇到的一些问题以及解决方法

, composer install 依赖错误 之前composer.lcok锁定了使用laravel-china的镜像源, 更换成阿里的之后已经正常使用 laravel-admin升级处理问题...使用软删除)功能 更新了版本,使用的是DropdownActions替代了以前的Actions 这个地方遇见了两个问题 软删除的数据无法进入Action, 已经下架(软删除)的商品无法上架(抛出异常模型不存在...我们前面有一个错误找不到模型, 所以我们关注这行代码:model = action->retrieveModel( 上面解析了模型, 然后通过action->setRow( 所以我们查看retrieveModel...方法做了什么,因为这个方法是继承的,我们去到父类查看 先从Request中获取主键,然后再获取模型类,之后直接通过模型类的Model::findOrFail查找,我们之前找不到模型的错误就是findOrFail...抛出的异常 monday-shop 商城 所以解决方法也很简单,我们在实际的Action类重写这个方法 强制查询出软删除的数据即可, 到此便可正常上下架商品 monday-shop

16710

3分钟短文:Laravel路由加模型等于?

引言 上一章我们用3分钟时间光速入门了laravel控制的用法,本章不准备说控制器了,说一说另外俩模块,就是路由Route和模型Model,这俩直接加起来,会有什么奇思妙想的发生呢?...($id); }); 其中 findOrFail 方法是一个内置的语法糖,用于根据id查询条目,找不到抛出404错误页面。...laravel为我们准备了更多。 隐式绑定 首先来看一下默认的隐式路由模型绑定。 什么意思呢?...于是,把 {conference} 的值,作为查询条件,使用执行方法内的模型 Conference 实例化并执行查询结果,并赋值给 $conference 变量。...如果你不想用 ID,想用别的字段进行查询,那也可以,比如这样写: Route::get('conferences/{conference:title}', function (Conference $

48220

3分钟短文:Laravel路由加模型等于?

引言 上一章我们用3分钟时间光速入门了laravel控制的用法,本章不准备说控制器了,说一说另外俩模块,就是路由Route和模型Model,这俩直接加起来,会有什么奇思妙想的发生呢?...($id); }); 其中 findOrFail 方法是一个内置的语法糖,用于根据id查询条目,找不到抛出404错误页面。...laravel为我们准备了更多。 隐式绑定 首先来看一下默认的隐式路由模型绑定。 什么意思呢?...于是,把 {conference} 的值,作为查询条件,使用执行方法内的模型 Conference 实例化并执行查询结果,并赋值给 $conference 变量。...如果你不想用 ID,想用别的字段进行查询,那也可以,比如这样写: Route::get('conferences/{conference:title}', function (Conference $

78100

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

查询操作 基本查询操作 使用sql语句执行select查询操作 从数据表中取得所有的数据 从表中查询单行/ 从数据表中分块查找数据 从数据表中查询某一的列表 聚集函数 指定select查询条件...查询指定的 查询不同的结果distinct 使用原生表达式 Join操作 内连接 Inner Join 左连接 Left Join 高级Join方法 Union操作 Where查询条件 简单的...使用sql执行删除 基本删除操作 悲观锁 事务处理 查看日志记录 其它操作 在Laravel中执行数据库操作有两种方式,一种是使用\DB外观对象的静态方法直接执行sql查询,另外一种是使用Model类的静态方法...$join->on('users.id', '=', 'contacts.user_id')->orOn(...); }) ->get(); 如果join约束中要使用值与指定数组比较,则可以使用...Where查询条件 简单的wehere条件 使用where方法为查询增加where条件,该函数一般需要三个参数:列名,操作符(任何数据库支持的操作符都可以),值。

6.3K30

laravel5.6框架操作数据curd写法(查询构建器)实例分析

本文实例讲述了laravel5.6框架操作数据curd写法(查询构建器)。分享给大家供大家参考,具体如下: laravel5.6 数据库操作-查询构建器 <?...$data = DB::table('users')- get(); //first() 方法将会返回单个对象(获取一行一) //where() 方法查询指定条件对象 $data = DB::table...users')- where('id', 1)- exists(); //join() 方法连表查询 $data = DB::table('users') - join('ceshi', 'users.id...操作数据ORM 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程...》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

2.2K30

laravel 学习之路 数据库操作 查询数据

运行 Select 查询 你可以使用 DB Facade 的 select 方法来运行基础的查询语句我们在上面创建的路由里增加个 index 的路由 dump 是 laravel 的打印函数可以把它理解为...select * from test where testId = :id', ['id' => 1]); dump($binding); } 查询构造器 Laravel 的数据库查询构造器为创建和运行数据库查询提供了一个方便的接口...Laravel查询构造器使用 PDO参数绑定来保护您的应用程序免受 SQL 注入攻击。因此没有必要清理作为绑定传递的字符串 注意:PDO 不支持绑定列名。...因此,不能让用户通过输入来指定查询语句所引用的列名,包括 order by 字段等等。 如果必须要允许用户通过选择某些来进行查询,请始终根据允许的白名单来校验列名。...获取一的值 当然业务中有时候需要获取 某个字段 哪一的值的集合,这个时候就用到了 pluck 方法,pluck 接受 2 个参数 第一个参数是我们要取的字段; 第二个字段是可以选的用来做 key

3.2K20

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

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting 文档指出:ONLY_FULL_GROUP_BY的设定,将不允许查询字段包括非聚集...group中,或者本身是聚合(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 方法一: 查询mysql 1055错误码发现问题为在mysql的配置中如果设置了...但是查看自己的配置my.cnf发现在sql_mode中并没有ONLY_FULL_GROUP_BY这个值 然后去查看Laravel的配置文件,config/database.php,查找mysql的配置,...如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零 NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告...那么数据被零除时MySQL返回NULL NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户 NO_ENGINE_SUBSTITUTION: 如果需要的存储引擎被禁用或未编译,那么抛出错误

1.4K40

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

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting 文档指出:ONLY_FULL_GROUP_BY的设定,将不允许查询字段包括非聚集...group中,或者本身是聚合(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 方法一: 查询mysql 1055错误码发现问题为在mysql的配置中如果设置了...select x,y from xxx group by x,y 否则就会报错 但是查看自己的配置my.cnf发现在sql_mode中并没有ONLY_FULL_GROUP_BY这个值 然后去查看Laravel...如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_ZERO_IN_DATE: 在严格模式下,不允许日期和月份为零 NO_ZERO_DATE: 设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告...那么数据被零除时MySQL返回NULL NO_AUTO_CREATE_USER: 禁止GRANT创建密码为空的用户 NO_ENGINE_SUBSTITUTION: 如果需要的存储引擎被禁用或未编译,那么抛出错误

1.1K30

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

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting 文档指出:ONLY_FULL_GROUP_BY的设定,将不允许查询字段包括非聚集...group中,或者本身是聚合(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 方法一: 查询mysql 1055错误码发现问题为在mysql的配置中如果设置了...select x,y from xxx group by x,y 否则就会报错 但是查看自己的配置my.cnf发现在sql_mode中并没有ONLY_FULL_GROUP_BY这个值 然后去查看Laravel...如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零 NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告...那么数据被零除时MySQL返回NULL NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户 NO_ENGINE_SUBSTITUTION: 如果需要的存储引擎被禁用或未编译,那么抛出错误

1.1K20

3分钟短文:Laravel 模型查询数据库的几个关键方法

引言 本期继续我们的laravel学习,主要说一说laravel使用eloquent orm 模型 读取数据库条目的几个常用方法。 ?...因为设计的原因,laravel支持的链式操作 本质上方法的返回值归属于不同的类。所以在使用方法之前务必明确调用的是哪个类的那个方法,返回的是什么类型的数据。...对于web应用,可以简单地使用前几期我们使用的 firstOrFail 方法,便捷地去除第一个条目, 或者找不到的时候,抛出异常。...比如常用的数据统计,计数,求平均,求和等等等等,laravel调用起来的方法也极为简单, 像下面这样: $countVips = Contact::where('vip', true)->count()...写在最后 本文主要讲了数据库查询相关的内容,包括获取全量数据,获取单条数据, 分块拉取数据,以及聚合函数等,这些常规操作集合上期讲的查询约束项, 基本上可以涵盖编程中的大多数需求了。

2K40

为什么 Laravel 这么优秀?

我会按照我理解的最佳实践的做法,一步步实现一个完整的 CURD;但不会一来就把 Laravel 的各个优秀组件抛出来,而是遇到什么组件后再尝试理解它为什么要这样设计、比起其他框架的优势在哪里。...Laravel 会自动帮我们处理复杂的 Join 操作,还能在一定条件下帮我们处理如 N+1 问题。...model 的定义生成对应的 Join 操作。....*' => 'sometimes|int|exists:students,id', ]; } } 如果你尝试传入一些无效的数据,Laravel 会直接帮我们验证并返回错误信息...中可以高效的使用 Eloquent ORM 实现各种查询;如上面的例子中我们使用了 withCount 来查询课程的学生数量、用 with 加载课程对应的教师;还可以指定生成的 SQL 查询只包含某几个字段如

15310

Laravel系列7.2】错误与异常处理

错误与异常处理 在学习完 Laravel 中的日志处理模块之后,接下来马上就进入到错误和异常的学习中。...有趣的是在 Laravel 框架中,我们可以在自定义的异常类中定义好 report() 和 render() 方法,这样,如果抛出的是我们自定义的异常,那么它们就会直接走这个异常类中对应的 report...HTTP异常 HTTP 异常主要的体现其实就是我们返回的 HTTP 状态码,比如说 404 找不到页面,401 未授权,500 错误,502 服务不可用之类的。...除了系统自己报出的这类错误之外,我们也可以手动抛出,这里就可以使用一个 abort() 辅助函数。...ErrorException 再次进行抛出,这次抛出后就进入了异常的处理流程,错误这一块就没什么多说的了。

2.7K20

Laravel 6.7.0 版本发布,支持不加载关联关系

Laravel 开发团队本周发布了 v6.7.0 版本,新增了一些新特性,以及对之前版本问题的修复。...custom_context' => $e->getCustomProperty()]; } return parent::exceptionContext($e); } 邮件传输失败时,现在会抛出错误来取代之前的静默失败...资源集合现在可以通过调用 preserveQueryParameters() 方法在 API 资源分页时保留查询字符串: return MyResourceCollection::make($repository...getQualifiedUpdatedAtColumn() 方法(#30792) Exceptions\Handler 中新增 exceptionContext() 方法支持(#30780) 邮件传输底层出错时抛出错误...withoutRelations() 和 unsetRelations() 方法(#30802) 新增 ResourceCollection::preserveQueryParameters() 方法以便在 API 资源分页时保留查询字符串

1.6K20
领券