Ответ 1
Правильный синтаксис:
Cliente::max('id')
Проблема началась, потому что у меня есть таблица (клиенты), в которой первичный ключ не является автоинкрементным. Я хочу выбрать максимальное значение, хранящееся в базе данных столбца. Как этот выберите, но с красноречивым orm (Laravel):
SELECT MAX(Id) FROM Clientes
Как я могу сделать в?
Я старался:
Cliente::with('id')->max(id)
Cliente::select('id')->max(id)
Я предпочитаю не делать простой необработанный "SELECT MAX (ID) FROM Clientes"
Я не могу сделать это.
Спасибо всем!
Правильный синтаксис:
Cliente::max('id')
Laravel делает это очень легко, в вашем случае вы бы использовали
$maxValue = Cliente::max('id');
Но вы также можете получить самую новую запись из таблицы, которая также будет иметь наибольшее значение
$newestCliente = Cliente::orderBy('id', 'desc')->first(); // gets the whole row
$maxValue = $newestCliente->id;
или только для стоимости
$maxValue = Cliente::orderBy('id', 'desc')->value('id'); // gets only the id
Или, если у вас есть столбец created_at
с датой, вы можете получить значение, подобное этому
$maxValue = Cliente::latest()->value('id');
Соответствующая документация Laravel: https://laravel.com/docs/5.5/queries#aggregates