我想访问数据库的特定字段,记住我想查阅数据库的最后一条记录。我在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
发生了什么?我很感激你的帮助...
答案 0 :(得分:0)
类stdClass的对象无法转换为字符串
这是因为$buscar
是stdClass
的对象,具有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();