These are chat archives for LaravelRUS/chat

4th
Apr 2014
Maxim
@Big-Shark
Apr 04 2014 04:09
Вопрос, есть места ( клубы ) и события в них, нужно вытаскивать по 3 ближайших события для каждого заведения, вопрос, как это можно сделать в ларе через джоины или связи, так чтобы получились красивые объекты вложенные друг в друга?
Orel
@2byte
Apr 04 2014 06:15
Веселого дня всем.
Brezhnev Ivan
@vanchelo
Apr 04 2014 08:34
Привет
Artem Kovardin
@horechek
Apr 04 2014 08:54
@Big-Shark
$comments = Post::find(1)->comments()->where('title', '=', 'foo')->first();
@Big-Shark если еще не поздно)
Maxim
@Big-Shark
Apr 04 2014 10:59
@horechek это не то, тут используется жаднаязагрузка и только для 1 обьекта, и только 1 обьекта, а мне нужно 3 объекта, для 10 объектов
Brezhnev Ivan
@vanchelo
Apr 04 2014 10:59
это сложно, тут только сырой запрос
есть такая тема на Хабре
Maxim
@Big-Shark
Apr 04 2014 11:01
@vanchelo я понимаю что тут нужно join или другую магию, но как бы это сделать красиво в виде орм
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:01
одним запросом?
Maxim
@Big-Shark
Apr 04 2014 11:01
можно 2, или даже 3, но не более)
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:03
а событий сколько может быть?
Andrey
@Quiss
Apr 04 2014 11:03
http://habrastorage.org/getpro/habr/post_images/5cc/395/acb/5cc395acb09929571d330988919af9b4.png интересно программировать на такой клаве удобно? =))
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:03
вот тут тебе бы как раз бы NoSQL база подошла
с Embed, как ты мне рассказывал на днях
Maxim
@Big-Shark
Apr 04 2014 11:04
событий в запросе 10, а вообще много)
точней нет, 10 заведений, и по 3 события на каждый нужно запросить
а вообще и заведений и событий в бд много
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:05
тогда хреново(
и я так полагаю что у события может быть несколько заведений?
Maxim
@Big-Shark
Apr 04 2014 11:08
нет, только 1
Artem Kovardin
@horechek
Apr 04 2014 11:34
foreach (Book::with('author')->get() as $book)
{
    echo $book->author->name;
}
@Big-Shark будет только два запроса
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:35
и как тут указать чтобы только 3 книги автора получить?
Artem Kovardin
@horechek
Apr 04 2014 11:36
сча
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:37
Клуб 1
---Событие 1
---Событие 2
---Событие 3

Клуб 2
---Событие 1
---Событие 2
---Событие 3

Клуб 3
---Событие 1
---Событие 2
---Событие 3
как я понял, вот так нужно достать
Maxim
@Big-Shark
Apr 04 2014 11:37
@vanchelo Именно так
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:38
но фишка в том @horechek что у клуба может быть и 1000 событий
а нужно только 3 ближайших
просто указать limit 3 не прокатит, потому что оно всего 3 достанет
а не 3 для каждого клуба
Orel
@2byte
Apr 04 2014 11:44
@vanchelo что у тебя не получается ?
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:45
то что выше описано
есть 10 клубов каждый из которых имеет 1000 мероприятий, нужно получить 10 клубов и по 3 ближайших события к каждому
Artem Kovardin
@horechek
Apr 04 2014 11:46
с мало запросами
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:46
точно)
Artem Kovardin
@horechek
Apr 04 2014 11:46
да, фигня
Orel
@2byte
Apr 04 2014 11:46
LEFT JOIN ?
Brezhnev Ivan
@vanchelo
Apr 04 2014 11:46
запрос в студию
и так чтобы средствами ОРМ
  • чтобы к примеру foreach ($club->actions as $action)
т.е. всё объектами
Orel
@2byte
Apr 04 2014 11:53
SELECT `c`.*,`ev`.* FROM `clubs` AS `c`
LEFT JOINT (SELECT * FROM `event_clubs` WHERE  `id_club`=`c`.`id` LIMIT 3) AS `ev`
Rafkat Galiullin
@neolite
Apr 04 2014 12:00
всем привет! есть ли ларавеловский аналог find_or_create_by?
метод на рельсах User.find_or_create_by(first_name: 'Penelope')
ищет по полю, если нет, то создает
Brezhnev Ivan
@vanchelo
Apr 04 2014 12:00
наверное самому писать надо
можно сделать базовую модель с нужным методом, а от ней все наследовать
^)
:)
Brezhnev Ivan
@vanchelo
Apr 04 2014 12:09
классно)
Maxim
@Big-Shark
Apr 04 2014 12:09
@2byte не, твой запрос достанет только 3 ивента, а не по 3 на каждое мето
Rafkat Galiullin
@neolite
Apr 04 2014 12:10
в доках нет ,а в апи есть
Maxim
@Big-Shark
Apr 04 2014 12:10
в доках много чего нет
Brezhnev Ivan
@vanchelo
Apr 04 2014 12:10
это верно))
Maxim
@Big-Shark
Apr 04 2014 12:11
@2byte хотя может и вру, проверять надо
Maxim
@Big-Shark
Apr 04 2014 12:27
@2byte так и не смог заставить работать этот запрос
Brezhnev Ivan
@vanchelo
Apr 04 2014 13:25
на днях искал плагины, вот собрал для себя, может кому-то пригодится)
Brezhnev Ivan
@vanchelo
Apr 04 2014 13:40
@Big-Shark у тебя есть описание синглота на трейте?
было бы удобно
Brezhnev Ivan
@vanchelo
Apr 04 2014 13:55
https://gist.github.com/vanchelo/9975212
Вот так пойдет? как думаете?
Alexander Zhuravlev
@SCIF
Apr 04 2014 14:51
Всем доброго времени суток! Всем привет!
Brezhnev Ivan
@vanchelo
Apr 04 2014 14:53
Привет!
Alexander Zhuravlev
@SCIF
Apr 04 2014 14:53
Есть вопрос. Есть некий ul фиксированной высоты. Иногда, у него элементов больше, чем влазит в эту высоту и тогда срабатывает overflow-y: auto;. Какой-то из li имеет класс active. Вот иногда он оказывается вне видимой области. Есть ли какой-то удобный способ проматывать списочег чтобы активный был в видимой области?
Ага. Метод scrollTop и вычисление высоты блока/текущего положения и положения видимого элемента, судя по всему мне предстоит
Работает. Короче программисты стремительно превращаются в высокооплачиваемых операторов stackoverflow.
Brezhnev Ivan
@vanchelo
Apr 04 2014 15:46
как разбить массив на два?
array_chunk($array, ceil(count($array) / 2)); ?
Rafkat Galiullin
@neolite
Apr 04 2014 18:16
ewdset5r
Brezhnev Ivan
@vanchelo
Apr 04 2014 19:36
шифр?