如何访问db表的最后一条记录以及laravel中最后一条记录的字段

时间:2018-06-13 13:51:02

标签: mysql laravel

我想访问数据库的特定字段,记住我想查阅数据库的最后一条记录。我在laravel中这样做,目前我有以下内容:

$buscar=DB::table('ciclo')            //In this way I look for the last record
    ->select(DB::raw('max(idCiclo) as idCiclo'))
    ->get();

然后他尝试进行查询,以便找到他之前搜索过的最后一条记录的ID

$ultimo= DB::table('ciclo')
    ->select('idCiclo', 'fechaFinal')
    ->where('idCiclo', '=', $buscar)
    ->first();

执行时会告诉我以下错误

Object of class stdClass could not be converted to string

发生了什么?我很感激你的帮助...

3 个答案:

答案 0 :(得分:0)

类stdClass的对象无法转换为字符串  这是因为$buscarstdClass的对象,具有idCiclo属性。 (在db no records中可能$buscar为空)

$ultimo= DB::table('ciclo')
    ->select('idCiclo', 'fechaFinal')
    ->where('idCiclo', '=', $buscar->idCiclo)
    ->first();

你可以采用更简短的方法

$maxIdCiclo = DB::table('ciclo')->max('idCiclo'); // return max idCiclo or null 
$ultimo= DB::table('ciclo')
        ->select('idCiclo', 'fechaFinal')
        ->where('idCiclo', '=', $maxIdCiclo)
        ->first();

答案 1 :(得分:0)

你甚至可以试试这个

$ultimo= DB::table('ciclo')
    ->select('idCiclo', 'fechaFinal')
    ->orderBy('idCiclo', 'DESC')
    ->take(1)
    ->get();

答案 2 :(得分:0)

在两个查询中,您在逻辑和结果中都有错误。至于第一个你可以给出完全错误的结果,不一定具有最大值的id对应于最后一个记录。在您的第二个查询中,错误是您的变量$buscar是一个集合类型而不是字符串,这就是错误的原因。

我建议您这样做:

$ultimo = DB::table('ciclo')
            ->select('idCiclo','fechaFinal')
            ->orderBy('idCiclo', 'desc')
            ->limit(1)
            ->get();