These are chat archives for LaravelRUS/chat

2nd
Aug 2017
Shelomanov Dmitry
@userbq201
Aug 02 2017 07:50 UTC
привет. Есть кто тут?
KarmaBot
@KarmaBot
Aug 02 2017 07:50 UTC
Приветствую тебя, @userbq201!
Anton Vorontsov
@symbios-zi
Aug 02 2017 07:50 UTC
@userbq201 да есть есть, пиши сразу вопрос
Shelomanov Dmitry
@userbq201
Aug 02 2017 07:50 UTC
как кинуть код с подсветкой ?
сюда
Ваня Devium
@webdevium
Aug 02 2017 07:50 UTC
прочитай правила
Shelomanov Dmitry
@userbq201
Aug 02 2017 07:51 UTC
а так сказать? D
Ваня Devium
@webdevium
Aug 02 2017 07:51 UTC
всем "так говорить" можно устать и покончить жизнь самоубийством
Anton Vorontsov
@symbios-zi
Aug 02 2017 07:51 UTC
@userbq201 код обертни тремя обратными апострофами с каждой стороны
Alexander
@Dualse
Aug 02 2017 07:51 UTC
@userbq201 ты должен был их сразу прочитать
а не задавать 2 глупых вопроса
про которые сказано в правилах
Shelomanov Dmitry
@userbq201
Aug 02 2017 07:55 UTC
        $data = $this->battle
            ->with(['photo' => function($q) {
                $q->with(['likes' => function($q) {
                    $q->select('id', 'photo_id', 'user_id')
                      ->where('user_id', Auth::user() ? Auth::user()->id : 0);
                }])
                ->with(['user' => function($q) {
                    $q->select('id', 'uid', 'provider');
                }])
                ->withCount('likeCount');
            }])
            ->where([
                ['week', DateHelper::currentStep()],
                ['publish', 2]
            ])
//            ->orderBy('id', 'asc')
            ->orderBy('like_count_count', 'asc')
            ->get();
Короче - беру из таблицы батлы инфу о фотке. С лайками. И вот тут уже сортировку по лайкам не сделать?
из батла всю инфу. О фотке + юзер + лайки. И теперь я понял что запрос говно. Я не могу сортировать по лайкам
Ваня Devium
@webdevium
Aug 02 2017 07:56 UTC
@userbq201 можешь
Shelomanov Dmitry
@userbq201
Aug 02 2017 07:56 UTC
как ? хелпани
выходит же обьект батл и в нем инфа
Ваня Devium
@webdevium
Aug 02 2017 07:57 UTC
@userbq201 ты хочешь именно фотки отсортировать по лайкам?
Shelomanov Dmitry
@userbq201
Aug 02 2017 07:57 UTC
да

как угодно. Лиж бы отсортировало. Но пока не вышло. А понял. Просто типа

orderby(tableName.field)

Сработает?

Alexander
@Dualse
Aug 02 2017 07:58 UTC
@userbq201 вроде нет
Ваня Devium
@webdevium
Aug 02 2017 07:58 UTC
не не, погоди
->with(['photo' => function($q) {
    $q->with(['likes' => function($q) {
        $q->select('id', 'photo_id', 'user_id')
          ->where('user_id', (int)auth()->id());
    }])
    ->withCount('likes', function($q) {
        $q->select('id', 'photo_id', 'user_id')
          ->where('user_id', (int)auth()->id());
    })
    ->latest('likes_count');
}])
вроде по семантике запроса так должно быть
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:19 UTC
ты о чем?
Ваня Devium
@webdevium
Aug 02 2017 08:19 UTC
а ты о чем?
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:20 UTC
а и лайки же в другой табле
я не могу сортировать так
Ваня Devium
@webdevium
Aug 02 2017 08:20 UTC
есть photo, есть likes. Что еще есть?
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:21 UTC
табла батлы там фото айди. Табла лайки там фото. Я смотрю фотки из батлы + кол-во лайков
Ваня Devium
@webdevium
Aug 02 2017 08:21 UTC
@userbq201 я тебе написал запрос. Ты не понимаешь как это работает.
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:23 UTC
не сортнуло
Ваня Devium
@webdevium
Aug 02 2017 08:23 UTC
@userbq201 запрос конечный покажи
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:24 UTC
@webdevium я выше полный кинул
Ваня Devium
@webdevium
Aug 02 2017 08:25 UTC
@userbq201 сгенерированный
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:25 UTC
"select * from battle where (week = ? and publish = ?)"
Ваня Devium
@webdevium
Aug 02 2017 08:26 UTC
не прикалывайся. Полный сгенерированный запрос покажи, иначе от помощи смысла не будет.
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:26 UTC
как? что за запрос? toSql я сделал
Ваня Devium
@webdevium
Aug 02 2017 08:27 UTC
@userbq201 почитай в поисковике как посмотреть полный сгенерированный запрос
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:31 UTC
        \DB::listen(function($data) {
            dump($data);
        });
не помогает
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:37 UTC
подмоги D. ен гуглится
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:39 UTC
сделал
string(59) "select * from `battle` where (`week` = ? and `publish` = ?)" array(2) { [0]=> int(1) [1]=> int(2) } string(152) "select `photo`.*, (select count(*) from `likes` where `photo`.`id` = `likes`.`photo_id`) as `like_count_count` from `photo` where `photo`.`id` in (?, ?)" array(2) { [0]=> int(17) [1]=> int(19) } string(44) "select * from `users` where `id` = ? limit 1" array(1) { [0]=> int(6) } string(100) "select `id`, `photo_id`, `user_id` from `likes` where `likes`.`photo_id` in (?, ?) and `user_id` = ?" array(3) { [0]=> int(17) [1]=> int(19) [2]=> int(6) } string(72) "select `id`, `uid`, `provider` from `users` where `users`.`id` in (?, ?)" array(2) { [0]=> int(5) [1]=> int(6) }
или как кинуть что бы видно было?
да. так не сделать сортировку
Ваня Devium
@webdevium
Aug 02 2017 08:43 UTC
@userbq201 там на SO есть вариант, когда полные запросы пишутся в лог файл, не видел?
@userbq201 это раз, два: ты не сделал как я тебе написал
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:44 UTC
пробовал. Работает но не меняет ничего
Ваня Devium
@webdevium
Aug 02 2017 08:45 UTC
@userbq201 ты мне покажи конечных гребанных три запроса. Не prepared statement, а три готовых запроса
@userbq201 а я тебе скажу что поменять чтоб "заработало"
будешь ныть, что не работает и хрен знает почему - точно работать не будет
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:47 UTC
select * from `battle` where (`week` = ? and `publish` = ?)
select `photo`.*, (select count(*) from `likes` where `photo`.`id` = `likes`.`photo_id`) as `like_count_count` from `photo` where `photo`.`id` in (?, ?) order by `like_count_count` desc
select * from `users` where `id` = ? limit 1
select `id`, `photo_id`, `user_id` from `likes` where `likes`.`photo_id` in (?, ?) and `user_id` = ?
Ваня Devium
@webdevium
Aug 02 2017 08:48 UTC
@userbq201 ты как фотки выводишь?
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:48 UTC
в цикле. Массив батлов и $item->photo
Ваня Devium
@webdevium
Aug 02 2017 08:49 UTC
@userbq201 foreach ($item->photo->sortByDesc('like_count_count') as $photo)
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:52 UTC
не понял. Ты не о том. Массив батлы и в нем фотки. А не фото типа массив. Фото не масиив
Ваня Devium
@webdevium
Aug 02 2017 08:53 UTC
@userbq201 Есть несколько баттлов, у баттла есть несколько фоток, у фотки есть несколько лайков?
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:55 UTC
есть батл там 1 к 1му фото и фоток 1 ко многим лайки
Ваня Devium
@webdevium
Aug 02 2017 08:55 UTC
@userbq201 а что сортировать то надо?
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:55 UTC
фото по лайкам
Ваня Devium
@webdevium
Aug 02 2017 08:55 UTC
так у одного баттла одна фотка. Что сортировать?
баттлы?
Shelomanov Dmitry
@userbq201
Aug 02 2017 08:56 UTC
вот и я об этом. Как выйдет ? Из этого вроде не выйдет фото по лайкамм отсортировать. Может батлы выйдет?
Ваня Devium
@webdevium
Aug 02 2017 08:56 UTC
@userbq201 ты начинаешь удивлять. Определись что тебе вообще надо сделать.
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:01 UTC
@webdevium так можно что то сдлеать?
Ваня Devium
@webdevium
Aug 02 2017 09:02 UTC
@userbq201 что тебе надо сделать???
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:02 UTC
Всем утречко :)
Ваня Devium
@webdevium
Aug 02 2017 09:02 UTC
@Nuboskill_twitter в 12 дня
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:02 UTC
ну пока позавтракаешь, в душик сходишь...)
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:03 UTC
@webdevium отсортировать по лайкам
Ваня Devium
@webdevium
Aug 02 2017 09:03 UTC
@userbq201 кого, баттлы?
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:03 UTC
да
получается 1ин батл содержит одну фотку с кол-вом лайков
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:03 UTC
Если с js фреймворками не работал, то какой лучше выбрать для ларавел? Пока дискуссии из интернетов приводят к vue.js
А то в jquery уже громоздко выходит, поглядел в сторону вью, там многие штуки короче выйдут и удобнее
Ваня Devium
@webdevium
Aug 02 2017 09:04 UTC
@userbq201 делаешь througth связь для баттла через photo
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:04 UTC
лара это сервер. Нет значения что на клиенте
Ваня Devium
@webdevium
Aug 02 2017 09:04 UTC
@userbq201 закончишь - покажи код
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:04 UTC
вопрос удобства, ларакаст во всю делает ставку на вью
вот и решил поинтересоваться у тех, кто с js фреймворками работал, какой удобнее для лары
Ваня Devium
@webdevium
Aug 02 2017 09:06 UTC
@Nuboskill_twitter реакт
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:07 UTC
@webdevium чем удобнее того же vue?
Ваня Devium
@webdevium
Aug 02 2017 09:07 UTC
@Nuboskill_twitter нельзя сравнивать
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:10 UTC
@webdevium почему именно ты используешь его, а не вью? Чем он для тебя удобнее? Что он может, чего не может вью? Я просто с js фреймворками не работал, только jquery, только хардкор. И хочется сразу тыкнуть в примерно нужном направлении.
Ваня Devium
@webdevium
Aug 02 2017 09:11 UTC
@Nuboskill_twitter реакт занимается только отображением
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:14 UTC
@webdevium для динамического изменения содержимого страницы при том же ajax'e кто из них удобнее?)
Ваня Devium
@webdevium
Aug 02 2017 09:15 UTC
@Nuboskill_twitter смотря откуда руки
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:16 UTC
да понятно, что можно и на чистом скрипте писать, но я про именно удобство написания, используя инструмент
Ваня Devium
@webdevium
Aug 02 2017 09:17 UTC
@Nuboskill_twitter ву - человекопонятней
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:18 UTC
@webdevium спасибо
KarmaBot
@KarmaBot
Aug 02 2017 09:18 UTC
Спасибо (+1) для @webdevium принято! Текущая карма +251.
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:19 UTC
продолжу тогда его учить
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:25 UTC
@webdevium не заходит этот метод чет
@webdevium не могу юзнуть. Бд не подходит
Ваня Devium
@webdevium
Aug 02 2017 09:26 UTC
@userbq201
public function likes()
{
    return $this->hasManyThrough(Photo::class, Like::class);
}
что значит биде твоя не подходит?
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:27 UTC
пустой массив в связи выходит
        return $this->hasManyThrough(
            'App\Models\Photo', 'App\Models\Likes',
            'photo_id', 'id', 'photo_id'
        );
для лайко внешний ключ photo_id, для photo это id и локальный в батле это photo_id
Ваня Devium
@webdevium
Aug 02 2017 09:28 UTC
@userbq201 нарисуй структуру базы acsii символами
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:32 UTC
image.png
@webdevium
Ваня Devium
@webdevium
Aug 02 2017 09:33 UTC
public function likes()
{
    return $this->hasManyThrough(Like::class, Photo::class);
}
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:35 UTC
        return $this->hasManyThrough(
            'App\Models\Likes','App\Models\Photo',
            'id', 'photo_id', 'photo_id'
        );
пусто
Ваня Devium
@webdevium
Aug 02 2017 09:35 UTC
@userbq201 покажи запрос
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:36 UTC
select `likes`.*, `photo`.`id` from `likes` inner join `photo` on `photo`.`id` = `likes`.`photo_id` where `photo`.`id` in (?, ?)"
Ваня Devium
@webdevium
Aug 02 2017 09:37 UTC
@userbq201 это запрос Battle::find(1)->likes ?
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:39 UTC
откуда он лайки достнет? тут без with
Ваня Devium
@webdevium
Aug 02 2017 09:39 UTC
@userbq201 hasManyThrough этим и занимается. Берет баттл, его фотку, и сквозь нее вытягивает все лайки
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:40 UTC
это же в виз нужно указать. или нет?
Ваня Devium
@webdevium
Aug 02 2017 09:40 UTC
@userbq201 нет
@userbq201 with() другим занимается
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:41 UTC
likes это название метода?
Ваня Devium
@webdevium
Aug 02 2017 09:41 UTC
@userbq201 это название связи, читай - метода
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:43 UTC
Trying to get property of non-object
лара не видит метода
Ваня Devium
@webdevium
Aug 02 2017 09:43 UTC
@userbq201 Баттл не выбрался. Ну подставь же существующий ID, йопрст
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:44 UTC
пусто
Ваня Devium
@webdevium
Aug 02 2017 09:44 UTC
@userbq201 ID существующего баттла дай
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:44 UTC
дал. ошибки нету. Пустой массив пришел
Ваня Devium
@webdevium
Aug 02 2017 09:45 UTC
@userbq201 сделай теперь для этого батла фотку, и для фотки несколько лайков
и дай конечный запрос
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:45 UTC
все есть
пусто приходит
Ваня Devium
@webdevium
Aug 02 2017 09:45 UTC
@userbq201 ЗАПРОС
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:46 UTC
а стоп. Пришло
select `likes`.*, `photo`.`id` from `likes` inner join `photo` on `photo`.`id` = `likes`.`photo_id` where `photo`.`id` = ?
Ваня Devium
@webdevium
Aug 02 2017 09:47 UTC
@userbq201 зашибись, теперь твой мега запрос превращается в
Battle::withCount('likes')->with('photo')->orderBy('likes_count', 'desc')->get();
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:50 UTC
вроде ок. Сейчас проверю
а теперь + юзер это просто метод with photo изменить ? Добавить user ?
Ваня Devium
@webdevium
Aug 02 2017 09:51 UTC
юзер к чему?
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:51 UTC
что бы еще инфу юзера чья фотка получить
Ваня Devium
@webdevium
Aug 02 2017 09:51 UTC
у фотки нет пользователя
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:51 UTC
есть поля там user_id
Ваня Devium
@webdevium
Aug 02 2017 09:52 UTC
в какой таблице?
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:52 UTC
photo
Ваня Devium
@webdevium
Aug 02 2017 09:52 UTC
@userbq201 на картинке схемы этого поля нет
ну тогда with('photo.user')
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:52 UTC
в данной ситуации оно не важно
о об этом коротком синтаксисе я не знал
Ваня Devium
@webdevium
Aug 02 2017 09:53 UTC
@userbq201 изучай изучай
ты еще много не знаешь, но главное - не останавливаться
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:53 UTC
хотя знал. Но мне говорили что лучше отдельно
Ваня Devium
@webdevium
Aug 02 2017 09:54 UTC
@userbq201 зависит от ситуации
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:58 UTC
@webdevium hasManyThrough что этот метод дал? Я читнул доки и не врубился
Ваня Devium
@webdevium
Aug 02 2017 09:58 UTC
@userbq201 переведи это с английского и поймешь
Shelomanov Dmitry
@userbq201
Aug 02 2017 09:58 UTC
я на рус читал D
Ваня Devium
@webdevium
Aug 02 2017 09:59 UTC
нечем гордиться
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 09:59 UTC
множественная связь через сквозную таблицу?
Ваня Devium
@webdevium
Aug 02 2017 09:59 UTC
:+1:
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:03 UTC
@Nuboskill_twitter это и я прочитал. А как понять?
Sergey Titov
@Nuboskill_twitter
Aug 02 2017 10:03 UTC
я даже не знаю как тебе расшифровать мое предложение выше, в нем в принципе и есть ответ)
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:16 UTC
не. не то вышло
DzetaLabs
@DzetaLabs_twitter
Aug 02 2017 10:28 UTC
Всем привет. Подскажите где можно прочитать про использование firebase (FCM) Я изучаю laravel, пытаюсь написать backend для простенького мобильного приложения, и не могу понять как интегрировать FCM с фреймворком. Заранее спасибо.
KarmaBot
@KarmaBot
Aug 02 2017 10:28 UTC
@DzetaLabs_twitter, привет =)
@DzetaLabs_twitter, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:29 UTC

@webdevium

select `battle`.*, (select count(*) from `likes` inner join `photo` on `photo`.`id` = `likes`.`photo_id` where `battle`.`id` = `photo`.`id`) as `likes_count` from `battle`

Как поменять условие where battle.id = photo.id ? По этому у меня коунт = 0

Ваня Devium
@webdevium
Aug 02 2017 10:29 UTC
@userbq201 как запрос написал?
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:31 UTC
$this->battle->withCount('likes')->get();
Ваня Devium
@webdevium
Aug 02 2017 10:31 UTC
@userbq201 хотя пофиг, прочти внимательно 12 раз порядок ключей в объявлении сквозной связи и переделай нормально
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:31 UTC
и тут видишь он джоинит. по батл id. А нужно по батл photo_id
я прочел правильно порядок ключей.
Ваня Devium
@webdevium
Aug 02 2017 10:32 UTC
@userbq201 пиши сюда простыми словами
1) ?
2) ?
3) ?
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:32 UTC
1й для промежуточной
2й конечной
3й локальный
т.е. 1й для 2й -> 2й для 1й -> 3й локальный
Ваня Devium
@webdevium
Aug 02 2017 10:34 UTC
@userbq201 напиши как обьявлены связи между battle и photo
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:35 UTC
    public function likes()
    {
        return $this->hasManyThrough(
            'App\Models\Likes','App\Models\Photo',
            'id', 'photo_id', 'photo_id'
        );
    }
Ваня Devium
@webdevium
Aug 02 2017 10:35 UTC
@userbq201 БАТТЛ И ФОТО
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:36 UTC
@webdevium нету батла и фото. Я пока без фото беру. Только этот метод
мне 0 приходит
    public function photo()
    {
        return $this->belongsTo('App\Models\Photo');
    }
Dualse @Dualse в шоке от терпения @webdevium
webdevium @webdevium сам в шоке
Ваня Devium
@webdevium
Aug 02 2017 10:37 UTC
@Dualse может поможешь, я пока на обед схожу, час уже голодный сижу с его базой...
Alexander
@Dualse
Aug 02 2017 10:38 UTC
@webdevium нет конечно, у меня нету столько времени)
Ваня Devium
@webdevium
Aug 02 2017 10:40 UTC
@userbq201 короче, withCount не понимает по какому ключу связку нужно сделать.
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:41 UTC
и что делать?
Ваня Devium
@webdevium
Aug 02 2017 10:42 UTC
@userbq201 у тебя база не самым красивым образом спроектирована. Сделай два запроса и построй "вывод" как тебе надо
@userbq201 у тебя все равно все лайки поделены по photo_id
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:42 UTC
блин хрень выходит
select `likes`.*, `photo`.`id` from `likes` inner join `photo` on `photo`.`id` = `likes`.`photo_id` where `photo`.`id` in (?, ?)
Ваня Devium
@webdevium
Aug 02 2017 10:43 UTC
@userbq201 можешь справочник сделать photo_id => count() group by photo_id
@userbq201 а лучше всего - join написать, там две таблицы прикрутить, никаких проблем. Тогда всю свою портянку сможешь реализовать
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:44 UTC
in (?,?) эти id он откуда возмет?
Ваня Devium
@webdevium
Aug 02 2017 10:45 UTC
@userbq201 посмотри в bindings, мне по чем знать то
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:46 UTC
все есть. В связи пусто
$this->battle->with('likes')->get()
Alexander
@Dualse
Aug 02 2017 10:47 UTC
@webdevium в двух словах, в чем конкретно проблема?
Ваня Devium
@webdevium
Aug 02 2017 10:47 UTC
@userbq201
  • пропиши связь в Battle для Photo и обратно
  • пропиши связь в Photo для Like и обратно
  • приходи сюда
@Dualse withCount() не работает у человека
Alexander
@Dualse
Aug 02 2017 10:48 UTC
@webdevium почему? у него какая-то магическая структура данных?
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:49 UTC
@webdevium есть эти связи
Ваня Devium
@webdevium
Aug 02 2017 10:49 UTC
@Dualse связи не плотно описаны, я ему написал как должна сквозная работать, но она тоже неадекватные ключи подставила, НЕ для ЕГО базы, понял?
@userbq201 тебе счас Саня поможет
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:50 UTC
        $data = $this->battle
            ->with(['photo' => function($q) {
                $q->with(['likes' => function($q) {
                    $q->select('id', 'photo_id', 'user_id')
                      ->where('user_id', Auth::user() ? Auth::user()->id : 0);
                }])
                ->with(['user' => function($q) {
                    $q->select('id', 'uid', 'provider');
                }])
                ->withCount('likeCount')
            }])
            ->where([
                ['week', DateHelper::currentStep()],
                ['publish', 2]
            ])
            ->orderBy('id', 'asc')
            ->orderBy('photo.likes', 'asc')
            ->get();
вот что было в начале
батл с фото. Фото с лайками и юзером
но в этом я не могу просортировать по лайкам
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:56 UTC
отбой. Оказалось проще не куда. Я просто батлу связь лайков кинул.
KarmaBot
@KarmaBot
Aug 02 2017 10:56 UTC
@userbq201, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:57 UTC
@webdevium пасибо
KarmaBot
@KarmaBot
Aug 02 2017 10:57 UTC
Спасибо (+1) для @webdevium принято! Текущая карма +252.
Shelomanov Dmitry
@userbq201
Aug 02 2017 10:57 UTC
@Dualse и тебе. спасибо
KarmaBot
@KarmaBot
Aug 02 2017 10:57 UTC
Спасибо (+1) для @Dualse принято! Текущая карма +159.
Alexander
@Dualse
Aug 02 2017 11:02 UTC
о, холява
Shelomanov Dmitry
@userbq201
Aug 02 2017 11:07 UTC
@Dualse не говори
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 11:10 UTC
халява - приди!
nitrolovsky
@nitrolovsky
Aug 02 2017 11:51 UTC
Курсы Laravel в СПб кто-нибудь встречал?
JhaoDa
@jhaoda
Aug 02 2017 11:55 UTC
@nitrolovsky Laracast наше всё
Ostap
@BendersOstap_twitter
Aug 02 2017 16:31 UTC
Привет други) а как запросить из базы статьи текущего пользователя?) при улсовии что есть связь один ко многим
KarmaBot
@KarmaBot
Aug 02 2017 16:31 UTC
О! @BendersOstap_twitter! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
Ваня Devium
@webdevium
Aug 02 2017 16:31 UTC
auth()->user()->articles
Ostap
@BendersOstap_twitter
Aug 02 2017 16:33 UTC
@webdevium оооо thx =)
KarmaBot
@KarmaBot
Aug 02 2017 16:33 UTC
Спасибо (+1) для @webdevium принято! Текущая карма +253.
Ostap
@BendersOstap_twitter
Aug 02 2017 16:35 UTC
@webdevium вот принято создавать судя по мануалам контроллеры ArticlesUserController для чего это делается?
Ваня Devium
@webdevium
Aug 02 2017 16:35 UTC
@BendersOstap_twitter это принято теми бездарями, которые "такие" мануалы пишут
JhaoDa
@jhaoda
Aug 02 2017 16:36 UTC
@BendersOstap_twitter чувак, ты тоже из секты Отрицающих Документацию?
Ostap
@BendersOstap_twitter
Aug 02 2017 16:37 UTC
@jhaoda лол))) я пока новичек ))
JhaoDa
@jhaoda
Aug 02 2017 16:37 UTC
@BendersOstap_twitter и что, новичкам можно не читать документацию?
Ostap
@BendersOstap_twitter
Aug 02 2017 16:38 UTC
@jhaoda а с чего сложилось такое мнение?)
JhaoDa
@jhaoda
Aug 02 2017 16:39 UTC
@BendersOstap_twitter ну либо ты не знаешь про auth()->user(), либо знаешь, но не понимаешь, что этот метод возвращает. Либо ты не знаешь, как запрашивать связи.
Ostap
@BendersOstap_twitter
Aug 02 2017 16:40 UTC
@jhaoda ну на данном этапе я нахожусь в разделе "связи" и пока не наблюдаю это решение с auth()->user() поэтому возник вопрос
@jhaoda https://laravel.ru/docs/v5/eloquent-relationships покрайней мере тут явного примера нету
JhaoDa
@jhaoda
Aug 02 2017 16:41 UTC
@BendersOstap_twitter именно, ты читаешь доку кусками, тогда как надо её читать всю, с первого раздела
@BendersOstap_twitter и почему в разделе про связи должно быть упоминание механизма аутентификации? Это разные вещи, но понимание их устройства позволили бы тебе сделать вывод, что их можно использовать совместно
Ostap
@BendersOstap_twitter
Aug 02 2017 16:43 UTC
@webdeviumhttps://youtu.be/AGQXFR2EI2I?list=PL3ZhWMazGi9JImZ4Xl1n1NDqZRQYaY2IE&t=420 вот линк пример построение такого контролера
JhaoDa
@jhaoda
Aug 02 2017 16:46 UTC
@BendersOstap_twitter и кстати, документация там уже год не обновлялась, застряв на версии 5.2
Ostap
@BendersOstap_twitter
Aug 02 2017 16:49 UTC
@jhaoda ну она основные понятия несет в себе, я как бы умею сравнивать что конкретно изменилось добавилось
JhaoDa
@jhaoda
Aug 02 2017 16:49 UTC
@BendersOstap_twitter я вижу, как ты умеешь...
Ostap
@BendersOstap_twitter
Aug 02 2017 16:52 UTC
@jhaoda Чувак, ты либо помогай либо не помогай, как это делает webdevuim он в двух словах дает максимально подробный ответ, конкретно тебя я о помощи не прошу, пройди мимо, чем лить пустые слова о том что ты видишь или не видишь, мы не в детском саду
JhaoDa
@jhaoda
Aug 02 2017 16:53 UTC
@BendersOstap_twitter а я не хочу проходить мимо
Ostap
@BendersOstap_twitter
Aug 02 2017 16:53 UTC
@jhaoda значит я буду просто игнорить тебя) мне как то до фени)
JhaoDa
@jhaoda
Aug 02 2017 16:54 UTC
@BendersOstap_twitter кто тебе мешал делать это раньше? Но лучше игнорь меня путём чтения доки
Ostap
@BendersOstap_twitter
Aug 02 2017 17:04 UTC

@webdevium правильно ли будет следующее?

    public function index()
    {
        $user = auth()->user();

        return view('home', compact('user'));
    }

а во вьюхе я вывожу

                @foreach($user->posts as $post)

                <article class="post">
                    <p>{{ $post->body }}</p>
                    <div class="info">Posted by {{ $user->name }} at {{ $post->created_at }}</div>
                    <div class="interaction">
                        <a href="#">Like</a> |
                        <a href="#">DisLike</a> |
                        <a href="#">Otpiska</a>
                    </div>
                </article>
                <hr>
                    @endforeach

тем самым захватывая имя автора и инфо о посте принадлежащее текущему юзеру?

Ваня Devium
@webdevium
Aug 02 2017 17:05 UTC
@BendersOstap_twitter
а) если связть прописана правильно
б) если прям внутри view обращаться к auth()->user(), а не прокидывать в шаблон
ну и как бы обязательная проверка на user(), если только эта вью не под мидлварей
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:06 UTC
@BendersOstap_twitter я бы предложил возвращать посты, а не юзера во вьюху
можно будет потом добавить пагинацию или ещё что
Ваня Devium
@webdevium
Aug 02 2017 17:06 UTC
Преждевременная оптимизация не нужна.
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:06 UTC
да и в индекс метод юзера через аутентификайтабл подсасывать, а не юзать сервис-локацию через функцию-хелпер
Но это уже личное
Ostap
@BendersOstap_twitter
Aug 02 2017 17:07 UTC
@SerafimArts @webdevium понял только что, что другие юзеры не смогут просмотреть в таком случае чужие посты других пользователей ибо только авторизированый пользователь сможет увидеть свои посты
Ваня Devium
@webdevium
Aug 02 2017 17:09 UTC
естественно, ты изначально такое условие поставил
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:09 UTC
public function indexOwn(Authenticatable $user): View
{
    return $thist->renderIndex($user);
}

public function indexOther($userId): View
{
    $user = User::findOrFail($userId);
    return $thist->renderIndex($user);
}

private function renderIndex(User $user): View
{
   ....
}
Ostap
@BendersOstap_twitter
Aug 02 2017 17:10 UTC
@webdevium а как тогда сформировать запрос без использования двойного контроллера (ArticleUserController) что бы пользователи смогли друг друга посты смотреть что то типо стены вк
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:10 UTC
типа такого =)
можно совместить, никто не мешает
Ваня Devium
@webdevium
Aug 02 2017 17:11 UTC
@BendersOstap_twitter Просто тащи все посты, и все. Чтоб понять чей он, сделай helper isMine(), в котором сравнивай автора с текущим зверем
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:11 UTC
достаточно аргумент роута $userId сделать опциональным
@webdevium это уже немного иное....
Ваня Devium
@webdevium
Aug 02 2017 17:12 UTC
@SerafimArts все зависит от того, делает ли он клон ВК
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:13 UTC
ну как бы хелпер нужен максимиум для того, чтобы во вьюшке показывать или скрывать какие-нибудь доп.опции, вроде "удалить"
Ostap
@BendersOstap_twitter
Aug 02 2017 17:13 UTC
@webdevium знаичт проще все же как чувак на видео делает двойной контроллер ArticleUserController)
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:13 UTC
да и то, это не через isMine, а через права
Ваня Devium
@webdevium
Aug 02 2017 17:13 UTC
@BendersOstap_twitter я даже за деньги не открою то видео
Kirill Nesmeyanov
@SerafimArts
Aug 02 2017 17:13 UTC
@BendersOstap_twitter нет, не проще
я уже тебе привёл пример
код выше
Джангар
@Dzhangar1980
Aug 02 2017 17:33 UTC
Всем привет! Посоветуйте нормальный медиа-менеджер. Использовал talvbansal/media-manager. Криво лег да и много не хватает...
KarmaBot
@KarmaBot
Aug 02 2017 17:33 UTC
@Dzhangar1980, здравствуй.
slider23
@slider23
Aug 02 2017 18:07 UTC
Кто там просил версионность моделей вчера ? http://www.laravel-auditing.com
PhpNet
@PhpNet
Aug 02 2017 18:15 UTC
@slider23 под 5.4 заведется оно? на сайте 5.2 указан :(
slider23
@slider23
Aug 02 2017 19:32 UTC
А почему не должен ? Новость прошла на laravel-news.com , значит на современных версиях должно работать.
Ostap
@BendersOstap_twitter
Aug 02 2017 19:36 UTC
ребят а чем отличается laravel.su от laraver.ru
laravel.ru *
JhaoDa
@jhaoda
Aug 02 2017 19:42 UTC
Как минимум доменом верхнего уровня, очевидно.
Ostap
@BendersOstap_twitter
Aug 02 2017 19:43 UTC
чет тишина в чате)
JhaoDa
@jhaoda
Aug 02 2017 19:45 UTC
@BendersOstap_twitter шутка, достойная камеди клаба. Такое же говно.