📜  laravel 检查是否刚刚创建了 eloquent - PHP (1)

📅  最后修改于: 2023-12-03 15:02:37.558000             🧑  作者: Mango

Laravel 检查是否刚刚创建了 Eloquent

如果你正在使用 Laravel 框架,你可能早已熟悉了 Eloquent ORM(对象关系映射)。但是,如何判断你是否刚刚创建了 Eloquent 集合或模型呢?

在 Laravel 中,可以通过 app('eloquent') 函数来获取 Eloquent 容器的实例,然后调用 newCollection()make() 方法创建 Eloquent 集合或模型。具体如下:

use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;

$eloquent = app('eloquent');
$collection = $eloquent->newCollection([]);
$model = $eloquent->make(Model::class);
$builder = $eloquent->newQuery();

在上述代码片段中,我们使用了 Illuminate\Database\Eloquent\CollectionIlluminate\Database\Eloquent\BuilderIlluminate\Database\Eloquent\Model 类来分别表示 Eloquent 集合、Eloquent 查询构建器和 Eloquent 模型。注意,make() 方法和 newQuery() 方法返回的是一个新的实例,而 newCollection() 方法传递了空数组作为参数,以创建一个空的 Eloquent 集合。

如果你想要一次性检查多个对象类型是否使用了 Eloquent,可以通过 instanceof 运算符来实现:

if ($collection instanceof Collection) {
    // $collection 是 Eloquent 集合
}

if ($model instanceof Model) {
    // $model 是 Eloquent 模型
}

if ($builder instanceof Builder) {
    // $builder 是 Eloquent 查询构建器
}

在上述代码片段中,我们对 $collection$model$builder 分别调用了 instanceof 运算符,以检查它们是否是对应的 Eloquent 对象类型。如果是,就会执行相应的代码,否则不执行。

当然,你也可以使用 is_a() 函数或 get_class() 函数来判断一个对象是否为某个类或接口的实例。

以上就是如何判断是否刚刚创建了 Eloquent 集合或模型的方法。如果你还有其他疑问或问题,可以查阅 Laravel 官方文档或开源社区资料进行学习。