【发布时间】:2014-10-08 00:16:04
【问题描述】:
我在 Laravel 中有一个查询需要升级。为了让事情正常工作,我不得不使用
DB::select(DB::raw());
而不是
模型::where()->get();
现在结果数据类型与原始数据类型不同,原始数据类型在应用程序后期出现多个错误。
最简单的方法是将接收到的数组从 $y 解析为与 $x 完全一样
在左侧,您可以在右侧(带下划线)看到已调试的值,使用的代码产生变量:
保持简单:如何让 $y 看起来像 $x?
=> $y 标记为 {array} 我需要将它标记为 {Illuminate\Database\Eloquent\Collection}
【问题讨论】:
-
由于结果与 $x 和 $y 不同($y 是我从新版本的查询中得到的结果)。我需要在不使用 $x 的情况下解析 $y。查看 vars 后面括号中的内容。 $y 被标记为“{array}”的地方我需要将它标记为“{Illuminate\Database\Eloquent\Collection}”
-
为什么不能使用
Model::where()->get()? -
因为 Laravel 开发人员忘记了一些案例,并在没有检查参数的情况下添加了引号。简而言之:它是由这个构建的肮脏的,它不会工作。如上所示,另一个证据是来自 laravel 的两个查询的不同响应类型。
-
稍后在视图中,应用程序访问查询结果对象上的一些静态方法,这些方法无法通过数组访问。
-
the Laravel developer forgot some cases是什么意思?如果你想要一个 Eloquent Collection - 那么你应该调用模型。你想真正得到什么?