在laravel 4.2中从DB :: select制作列表

时间:2016-11-22 22:32:03

标签: laravel laravel-4

我一直试图在laravel 4.2中使用一些原始查询。我已将查询减少到以下内容进行测试。列出结果列表并不起作用:

$latest_exams = DB::select("SELECT * from tb_exams where id = '21953120'");
$latest_exams_ids = $latest_exams->lists('id');

最后的查询有很多考试,我想最终得到一系列考试的ID。 有什么想法或建议吗?

编辑:澄清一下,它似乎是创建导致错误的列表。这个简化的查询工作正常。我能够将结果转储到页面,并按预期方式进行。当我添加"列表"线,它打破了。我将查询包含在与列表不起作用有关的情况下。

2 个答案:

答案 0 :(得分:2)

而不是使用$latest_exams = DB::select("SELECT * from tb_exams where id = '21953120'"); 这只会返回一个结果

where id = 21953120

首先,我建议您使用Eloquent查询构建器(使用您的模型而不是自己编写SQL查询)

$latest_exams = ModelName::all();

将返回所有考试的数组。 如果您仍然使用之前的SQL查询,则删除where条件以将所有考试作为数组。

答案 1 :(得分:1)

为了给答案添加一些口味,我决定写自己的。正如Michel所提到的,您可以为表实例创建model并通过Eloquent查询构建器进行查询。对于不受限制的查询,您可以在模型中使用all方法。 $latest_exams = ModelName::all('id');

或者,您可以按照doc described这样保持原始sql: $latest_exams = DB::select("select id from from tb_exams");

记得只选择id。 我打赌你要维护一些旧项目(Laravel现在点击5.3版本).. tbh,首先阅读文档,将其深入到api文档甚至源代码本身。快乐的编码!