我一直试图在laravel 4.2中使用一些原始查询。我已将查询减少到以下内容进行测试。列出结果列表并不起作用:
$latest_exams = DB::select("SELECT * from tb_exams where id = '21953120'");
$latest_exams_ids = $latest_exams->lists('id');
最后的查询有很多考试,我想最终得到一系列考试的ID。 有什么想法或建议吗?
编辑:澄清一下,它似乎是创建导致错误的列表。这个简化的查询工作正常。我能够将结果转储到页面,并按预期方式进行。当我添加"列表"线,它打破了。我将查询包含在与列表不起作用有关的情况下。
答案 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文档甚至源代码本身。快乐的编码!