如何使用Laravel 4原始查询获取第一条记录

10

如何使用 Laravel 4 的原始查询获取第一条记录。

类似于 DB::select('')->first(); 这样的语句不起作用,也不会像DB::first('')这样。


请查看此链接:https://dev59.com/9GUq5IYBdhLWcg3wN9wt - jeewiya
@jeewiya 我特别询问如何获取第一条记录,就像使用Eloquent的first()方法一样。 - Iyad Al aqel
刚刚添加了一个功能请求:https://github.com/laravel/framework/issues/11896 - Meglio
5个回答

27

事实是DB:select()返回一个数组,因此您需要:

DB::select(DB::raw('select * from users'))[0];

你也可以

DB::table('users')->first();

这是我现在拥有的,但我希望有一个替代方案。无论如何,还是谢谢。 - Iyad Al aqel
提供另一种选择。但是,正如我所说的,select将直接返回一个数组,而不是对象,因此没有方法可用。 - Antonio Carlos Ribeiro
6
如果没有找到记录,DB::select(DB::raw('select * from users'))[0]; 会触发未定义的偏移异常。 - Agu Dondo

2

像这样:

DB::table('users')->take(1)->get()[0];

6
如果没有找到记录,这会触发一个未定义的偏移异常。 - Gras Double

1
DB::table('users')->first(0);

1
使用Eloquent时,您可以这样做:

 $user = User::take(1)->get();

0

使用方法如下

$allmarketers = ProductStock::take(3)->get()[2]; 

Take会返回你想要的行数,而你可以使用偏移量(如2)来选择单个行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接