Okn*_*per 6 php laravel laravel-5
似乎每个人都在问如何将Query \ Builder转换为Eloquent \ Builder。我需要相反的事情-我有一个定义了一些范围的模型,可以从中创建查询。它返回的结果是我的模型的一个实例。我希望它成为一个普通的对象。
在我看来,获取模型并将其转换为stdClass是不合适的。
这可能吗?
是。您可以使用Eloquent查询构建器构建查询,但是实际上可以使用基础查询构建器执行查询,该查询将返回stdClass对象。
下面是一个例子。显然,您可以将所有这些内容链接到一行,但是我将其分解为多行以说明发生了什么。假设您active()对User模型有一个范围:
// 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();
Run Code Online (Sandbox Code Playgroud)
另一个仅返回一个对象的示例:
// will return a stdClass object
$user = User::active()->getQuery()->first();
Run Code Online (Sandbox Code Playgroud)
但是请注意,您确实失去了口才的查询功能,例如关系和渴望加载。
例如:
$user = User::with('posts')->active()->getQuery()->get();
Run Code Online (Sandbox Code Playgroud)
这将不会为用户的帖子运行查询,并且这些帖子也不会附加到返回的stdClass对象上。
| 归档时间: |
|
| 查看次数: |
2470 次 |
| 最近记录: |