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

Laravel Dingo FindOrFail返回空数组

Laravel Dingo是一个基于Laravel框架的RESTful API扩展包,它提供了一套简洁而强大的工具,用于构建和维护高性能的API。FindOrFail是Laravel框架中的一个方法,用于在数据库中查找指定条件的记录,如果找不到匹配的记录,则会抛出一个异常。

当使用Laravel Dingo的FindOrFail方法时,如果没有找到匹配的记录,它将抛出一个ModelNotFoundException异常。然而,有时我们希望在找不到记录时返回一个空数组而不是抛出异常。为了实现这个目的,我们可以使用Laravel Dingo的Collection类的empty方法。

下面是一个示例代码,演示了如何使用Laravel Dingo的FindOrFail方法返回一个空数组:

代码语言:php
复制
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Dingo\Api\Routing\Helpers;

class YourController extends Controller
{
    use Helpers;

    public function yourMethod()
    {
        try {
            $result = YourModel::findOrFail($id);
        } catch (ModelNotFoundException $e) {
            $result = $this->response->array([]);
        }

        return $result;
    }
}

在上面的代码中,我们首先使用Laravel Dingo的Helpers trait,以便在控制器中使用response方法。然后,我们使用FindOrFail方法来查找指定条件的记录。如果找不到匹配的记录,将会抛出ModelNotFoundException异常。我们在catch块中捕获这个异常,并使用response方法返回一个空数组作为响应。

这种方法的优势是,它可以避免抛出异常,而是返回一个空数组作为响应。这在某些情况下可能更加符合业务逻辑的需求。

关于Laravel Dingo的更多信息和使用方法,你可以参考腾讯云的相关产品文档:Laravel Dingo

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel Eloquent 模型关联关系(下)

此外,你还可以通过数组传递多个关联关系一次统计多个字段,还可以通过闭包函数指定对应统计的过滤条件: $post = Post::withCount(['tags', 'comments' => function...user_id' => mt_rand(1, 15)]) ]); 此外,我们还可以通过 create/createMany 方法来插入关联数据,与 save/saveMany 方法不同的是,这两个方法接收的是数组参数...还是以文章和标签为例,要将两个本来没有关联关系的记录绑定起来,可以通过 attach 方法实现: $post = Post::findOrFail(1); $tag = Tag::findOrFail(...1); $post->tags()->attach($tag->id); // 如果中间表还有其它额外字段,可以通过第二个数组参数传入 // $post->tags()->attach($tag->id...有时候,你可能仅仅是想要更新中间表字段值,这个时候,可以通过 updateExistingPivot 方法在第二个参数中将需要更新的字段值以关联数组的方式传递过去: $post->tags()->updateExistingPivot

19.5K30

Laravel jwt 多表(多用户端)验证隔离的实现

Tips: tymon/jwt-auth 作者已通过增加 prv 字段修复这一问题#1167,但是如果你是用 dingo api + jwt 的话,该问题依然存在。...# JWT 多表验证隔离 为什么要做隔离 当同一个 laravel 项目有多端(移动端、管理端……)都需要使用 jwt 做用户验证时,如果用户表有多个(一般都会有),就需要做 token 隔离,...这个 token 通过你的验证中间件时,你使用不同的 guard 就能拿到对应表 id 为 1 的用户(了解 guard 请查看 laravel 的文档)。...的:获取会储存到 jwt 声明中的标识,其实就是要我们返回标识用户表的主键字段名称,这里是返回的是主键 ‘id’, getJWTCustomClaims:返回包含要添加到 jwt 声明中的自定义键值对数组...,这里返回空数组,没有添加任何自定义信息。

2K31

04 tp6 的查数据 find、select、findOrEmpty、findOrFail、toArray、selectOrFail、value、column《ThinkPHP6 入门到电商实战》

操作 若想在查询结果为 null 时返回空数据,那么可以使用 findOrEmpty 进行查询,例如如下代码: public function select(){ $res=Db::table...('student')->where('id', 6)->findOrEmpty(); dump($res); } 此时访问后结果如下: 若想在查询为空时返回异常,那么直接使用 findOrFail...查询即可: public function select(){ $res=Db::table('student')->where('id', 6)->findOrFail(); dump...有些同学可能疑惑,本身查询到的数据不是数组嘛?...其实本身查询到的数据并不是数组,而是 Collection : 此时转为数组直接使用 toArray方法即可: $res=Db::table('student')->where('height',

1.2K10

(转) Laravel Eloquent 提示和技巧

findOrFail() : $user = User::findOrFail($id); 等价于: $user = User::find($id); if (!...6. find() 大家都知道 **find() **方法可以这样用: $user = User::find(1); 其实 find() 还可以传递一个数组作为参数: $users = User::find...author() { return $this->belongsTo('App\Author')->withDefault(); } 在此示例中,如果没有作者附加到帖子,则 author()关系将返回空的...命令行创建模型的同时,创建迁移文件和控制器 laravel创建模型的命令大家都很熟悉: php artisan make:model Company 不过你应该了解另外几个很常用的参数: php artisan...orWhere() 有多个参数的情况 通常情况下遇到这种查询: $q->where('a', 1); $q->orWhere('b', 2); $q->orWhere('c', 65); 这种情况下可以传递一个数组作为

1.5K30

通过 Laravel Eloquent 模型实现批量赋值和软删除

创建模型 以创建模型实例为例,批量赋值允许我们以数组的方式将待设置属性以关联数组的方式传递构造函数: $post = new Post([ 'title' => '测试文章标题', '...更新模型 如果是更新模型类,也可以通过批量赋值的方式实现,只需在获取模型类后使用 fill 方法批量填充属性即可: $post = Post::findOrFail(11); $post->fill($...这就意味着,在 Laravel 中,我们不需要编写任何额外代码就可以实现对数据库记录的「软删除」。...相关方法 要判断一条记录是否被软删除,可以通过 trashed 方法: $post = Post::findOrFail(32); $post->delete(); if ($post->trashed...本系列教程首发在Laravel学院(laravelacademy.org)

2.3K10

Laravel 5.5 异常处理 & 错误日志的解决

此外,Laravel 还集成了 Monolog 日志库以便提供各种功能强大的日志处理器,默认情况下,Laravel 已经为我们配置了一些处理器,我们可以选择单个日志文件,也可以选择记录错误信息到系统日志...Exception $e) { report($e); return false; } } 通过类型忽略异常 异常处理器的 $dontReport 属性包含一个不会被记录的异常类型数组...,默认情况下,404 错误异常不会被写到日志文件,如果需要的话你可以添加其他异常类型到这个数组: /** * 不应该被报告的异常类型列表...$id); return view('user.profile', ['user' = User::findOrFail($id)]); } } 该日志记录器提供了 RFC 5424 中定义的八种日志级别...Log::warning($error); Log::notice($error); Log::info($error); Log::debug($error); 上下文信息 上下文数据也会以数组形式传递给日志方法

4.4K31

Laravel基础

一、Laravel核心目录文件介绍 app:程序的核心代码和业务逻辑代码,其中的Http目录是我们业务逻辑的存放点 bootstrap:包含框架启动的和自动加载文件 config:包含所有程序中的配置文件..., ['abcd']); laraevl内置函数dd,可人性化的打印数组:dd($result); 3.2 数据库操作 - 查询构造器 3.2.1 查询构造器简介 Laravel 查询构造器(query...ORM查询 all: 通过orm获取所有数据 $result = Student::all(); find: 通过主键返回指定的数据 $result = Student::find(1001); findOrFail...: 通过主键返回指定的数据 未查找到到则抛出异常 $result = Student::findOrFail(1001); 获取符合条件的数据 $student = Student::where('...else 我不是EnzoLiu @endunless 4.3.3 for @for($i=0; $i<10; $i++) {{ $i }} @endfor 4.3.4 foreach 数组

7.8K30

完善你的Laravel异常处理

这篇文章我们来简单梳理一下Laravel中提供的异常处理能力,然后讲一些在开发中使用异常处理的实践,如何使用自定义异常、如何扩展Laravel的异常处理能力。...Illuminate\Database\Eloquent\ModelNotFoundException 通过模型的 findOrFail和 firstOrFail方法获取单条记录时如果没有找到会抛出这个异常...的处理HTTP请求不成功时抛出此异常 扩展Laravel的异常处理器 上面说了Laravel把 \App\Exceptions\Handler 注册成功了全局的异常处理器,代码中没有被 catch到的异常...我见过很多人在 Repository或者 Service类的方法中会根据不同错误返回不同的数组,里面包含着响应的错误码和错误信息,这么做当然是可以满足开发需求的,但是并不能记录发生异常时的应用的运行时上下文...内部异常处理的机制以及扩展 Laravel异常处理的方式方法。

2.7K20

Laravel5.7 Eloquent ORM快速入门详解

该属性决定日期被如何存储到数据库中,以及模型被序列化为数组或 JSON 时日期的格式: <?...\Flight::find([1, 2, 3]); Not Found 异常 有时候你可能想要在模型找不到的时候抛出异常,这在路由或控制器中非常有用,findOrFail 和 firstOrFail 方法会获取查询到的第一个结果...不过,如果没有任何查询结果,Illuminate\Database\Eloquent\ModelNotFoundException 异常将会被抛出: $model = App\Flight::findOrFail...所以在使用这些方法的时候没有必要对返回 404 响应编写额外的检查: Route::get('/api/flights/{id}', function ($id) { return App\Flight::findOrFail...guarded 属性包含你不想被赋值的属性数组。所以不被包含在其中的属性都是可以被赋值的,因此,guarded 功能就像“黑名单”。

15K41
领券