Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#2 Laravel 3 » id последней записи » 15.10.2013 16:26:53

kiselevmike
Ответов: 6

привет.
подскажите, возможно ли как-то получить id последней добавленной записи?
на сайте добавляется материал, мне нужно чтобы при его добавлении($model->save()) создавалась папка с id материала. какие могут быть варианты?

#3 Re: Laravel 3 » Проверка результата обращения к модели » 08.10.2013 10:54:07

я проверяю вот так $find->count(). если он меньше 1, то запись добавляю, иначе нет.

#5 Re: Laravel 3 » Проверка результата обращения к модели » 08.10.2013 10:41:23

  1. Чем заканчивается запрос («…»)? Если там get() — проверяйте результат на пустоту. Просто запрос без какого-то конечного действия (count, max и пр.) не имеет смысла, т.к. он никогда не выполнялся в БД и число строк неизвестно.

если ставить в конце get(), то в $find возвращается Object ( [items:protected] ⇒ Array ( ) ) . а функция empty() видимо не считает это пустым, т.к. там items есть

#6 Laravel 3 » Проверка результата обращения к модели » 08.10.2013 09:55:18

kiselevmike
Ответов: 8

здравствуйте, подскажите как проверить на "пустоту" следующий тип запроса:

$find = User::where(...)->where(...)->...;

нужно узнать, пуст ли объект $find или нет. empty() не помогает, потому что фактически $find никогда не пуст, даже если в базе нет данных по условию. но надо узнать, вернул ли объект из базы или не вернул.

#7 Re: Laravel 3 » Помогите написать сложный запрос :) » 07.10.2013 11:03:06

Proger_XP пишет:

}%Для L4 метод другой. См. ((http://laravel.ru/docs/v4/queries#%D1%81%D1%8B%D1%80%D1%8B%D0%B5 документацию)), это быстрее и можно сделать самому.

спасибо большое за помощь! db::raw сделал свое дело smile

#8 Re: Laravel 3 » Помогите написать сложный запрос :) » 04.10.2013 14:26:56

Proger_XP пишет:

Проще его выполнить через %%DB::query()%%, если нет возможности его переделать.

хм, почему то ругается на то, что такого метода нет. киньте ссылку, где про него почитать пожалуйста

#9 Re: Laravel 3 » Помогите написать сложный запрос :) » 04.10.2013 13:36:49

Имееется в виду с помощью Fluent/Eloquent? Проще выполнить его в сыром виде. Ещё лучше — переписать в виде объединений, например так:

sqlSELECT  ag.*, COUNT(a.id), status
FROM    articles a
JOIN    articles_groups ag
ON      ag.programm_id = '00' AND ag.user_id = '00' AND
        a.group_id = ag.id
GROUP BY status

Я не проверял, запрос сложный — проверь и поправь сам, если нужно. Если подойдёт, то с помощью Eloquent это можно легко написать, см. докуметацию.

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

#10 Re: Laravel 3 » контроллер » 04.10.2013 12:02:06

написано, что данный класс не существует

#11 Laravel 3 » Помогите написать сложный запрос :) » 04.10.2013 11:54:26

kiselevmike
Ответов: 8

всем привет!
подскажите, пожалуйста, как написать вот такой запрос:

SELECT ag.*,
                (select count(a.id) from articles a where a.group_id = ag.id and status='active') active,
                (select count(a.id) from articles a where a.group_id = ag.id and status='disable') disable,
                (select count(a.id) from articles a where a.group_id = ag.id and status='deleted') deleted
                FROM articles_groups ag where ag.programm_id = '00' AND ag.user_id = '00'

smile

Подвал раздела