【发布时间】:2018-01-16 06:45:06
【问题描述】:
这是一个 WHY 问题,而不是 How-to 问题:)
我已将 Query Bulder 分配给变量 $query:
$query = table::where(['id'=>1, 'this_version'=> 1]);
$versions['slug1'] = $query->select('tourist_id', 'tourist_version')->get()->toArray();
print_r($versions);
输出带有 2(!) 个子数组的数组:
Array
(
[slug1] => Array
(
[0] => Array
(
[tourist_id] => 1
[tourist_version] => 1
)
[1] => Array
(
[tourist_id] => 2
[tourist_version] => 1
)
)
)
但是,如果我在 $query 声明和获取 $version[2] 数组的用途之间使用 $query 添加另一行,我的 $version[2] 输出将缩短为一维数组:
$query = previoustour2_tourist::where(['tour2_id'=>$tour->id, 'this_version'=> 1]);
// Added line:
$versions['slug0'] = $query->select('version_created')->first()->version_created;
//
$versions['slug1'] = $query->select('tourist_id', 'tourist_version')->get()->toArray();
print_r($versions);
输出(注意 slug1 现在只有 1 个嵌套数组):
Array
(
[slug0] => 2017-08-08 08:25:26
[slug1] => Array
(
[0] => Array
(
[tourist_id] => 1
[tourist_version] => 1
)
)
)
好像是这样一行:
$versions['slug0'] = $query->select('version_created')->first()->version_created;
在原始 $query 中添加了“first()”方法。我是对的,如果是,为什么会这样?
【问题讨论】:
-
像这样在选择中使用数组
select(['tourist_id', 'tourist_version']) -
在您的第一个代码块中
$versions[slug1]看起来像是一个错字;应该抛出Use of undefined constant slug1, assumed 'slug1'错误,因为您缺少''、$versions['slug1']。 -
@timlewis,谢谢,改变了。
标签: laravel query-builder builder laravel-query-builder