gpt4 book ai didi

php - 将 Eloquent 构建器转换为查询构建器

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:56 24 4
gpt4 key购买 nike

好像大家都在问怎么把Query\Builder转成Eloquent\Builder。我需要相反的东西——我有一个定义了一些范围的模型,我从中创建了一个查询。它返回的结果是我的模型的一个实例。我希望它是一个普通对象。

获取模型并转换为 stdClass 对我来说似乎不合适。

这可能吗?

最佳答案

是的。您可以使用 Eloquent 查询构建器构建查询,但随后您可以使用基本查询构建器实际执行查询,它将返回 stdClass 对象。

下面是一个例子。显然,您可以将所有这些内容链接成一行,但我将其分成多行来解释发生了什么。假设您的 User 模型上有一个 active() 作用域:

// start an eloquent query but don't execute it yet
$query = User::active();

// add any other conditions...

// get the base builder for the eloquent builder
$baseQuery = $query->getQuery();

// will return a standard array of stdClass objects
$users = $baseQuery->get();

另一个只返回一个对象的例子:

// will return a stdClass object
$user = User::active()->getQuery()->first();

但是请注意,您确实失去了 Eloquent 查询功能,例如关系和预先加载。

例如:

$user = User::with('posts')->active()->getQuery()->get();

这将为用户运行帖子查询,并且帖子将附加到返回的 stdClass 对象。

关于php - 将 Eloquent 构建器转换为查询构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35417410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com