как получить доступ к последней записи таблицы базы данных и к полям последней записи в laravel - PullRequest
0 голосов
/ 13 июня 2018

Я хочу получить доступ к определенному полю базы данных, имея в виду, что я хочу обратиться к последней записи базы данных.Я делаю это в laravel, на данный момент у меня есть следующее:

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

, затем он попытался сделать запрос, чтобы найти идентификатор последней записи, которую он искал перед

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

При выполнении он сообщает мне следующую ошибку

Object of class stdClass could not be converted to string

что происходит?Буду признателен за вашу помощь ...

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

Вы даже можете попробовать это

$ultimo= DB::table('ciclo')
    ->select('idCiclo', 'fechaFinal')
    ->orderBy('idCiclo', 'DESC')
    ->take(1)
    ->get();
0 голосов
/ 13 июня 2018

Сначала в обоих запросах есть ошибки как в логике, так и в результатах.Что касается первого, вы можете дать совершенно ошибочные результаты, необязательно идентификатор с максимальным значением соответствует последней записи.Во втором запросе ошибка заключается в том, что ваша переменная $buscar является типом коллекции, а не строкой, поэтому ошибка.

Я предлагаю вам сделать следующее:

$ultimo = DB::table('ciclo')
            ->select('idCiclo','fechaFinal')
            ->orderBy('idCiclo', 'desc')
            ->limit(1)
            ->get();
0 голосов
/ 13 июня 2018

Объект класса stdClass не может быть преобразован в строку , потому что $buscar является объектом stdClass, который имеет атрибут idCiclo.(Возможно, $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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...