Vyacheslav
https://mattstauffer.com/blog/using-sparkpost-for-transactional-emails-with-laravel/
Stanislav
ну сделай $query->selectRaw(...)->addSelect(...)
спасибо. Не без костыля, но помогло. Дело в том, что в таком случае после выражения в selectRaw добавляет запятую, которая после дистинкта мне не надо. Пришлось добавить первый элемент массива в selectRaw, а остальные уже в addSelect
Stanislav
про addSelect я, кстати, не знал
Vyacheslav
про addSelect я, кстати, не знал
Удобная штука когда нужно много полей но не все)
invariance
Парни
invariance
а вы знали
invariance
что toArray - по ссылке работает
invariance
)
invariance
ну или я хз
invariance
да, точно по ссылке
Konstantin
теперь знаем
Maksim (Ellrion)
теперь знаем
и ты типо понял о чем он? фига се. я вот лично нет
Konstantin
он про ларовский метод походу toArray который
Konstantin
который с коллекциями работает
Maksim (Ellrion)
допустим он про метод toArray у Illuminate\Support\Collection, это я еще мог догадаться. но что значит что он работает по ссылке?
Konstantin
хм
Konstantin
вообще обычно это к аргументам относится
Konstantin
а он вообще флюент и к объекту
Konstantin
@foIIeah, фоллыч, кажись ты укурился )
invariance
чо
Konstantin
ты объясни че ты имел в виду про toArray и по ссылке
invariance
я имел ввиду
invariance
protected function getArrayableAttributes()
invariance
в моделе
invariance
он творит бардак
Maksim (Ellrion)
понятнее не стало))
invariance
мне тоже если честно
invariance
короче когда зовешь toArray на модели
invariance
дергается этот метод
invariance
и вот если с ним внутри какую то хню сотворить, например атрибуту верхний регистр задать
invariance
то изменится сама моделька с value-ми
invariance
т.е. сделал где то в коде $item->toArray()
invariance
и потом где то попробовал в другом месте вызвать $item->entity
invariance
то энтити будет измененный, если ты его в protected function getArrayableAttributes() изменил
Maksim (Ellrion)
что то не похоже на правду
invariance
однако так и есть)
Maksim (Ellrion)
ты уверен что ты там не $this->attrebutes[...] меняешь?
invariance
их и меняю, да, точно
invariance
все, проехали крч
invariance
не важно
invariance
Тц
Maksim (Ellrion)
ппц ты укурок)
invariance
да я такой
Konstantin
ага
Maksim (Ellrion)
ага
вот и разобрались) а ты "теперь знаем"...) вот теперь знаем что "всё херня. давай сначала"
Konstantin
ну, меня этот вопрос не сильно парил
Konstantin
меня больше парит, почему мне виртуалку 2 неделю сделать не могут
Maksim (Ellrion)
тут мои полномочия всё
Pavel
Что я щас прочитал?
Konstantin
да мои примерно там же где и твои заканчиваются
Anton
надо теги тавить -#прогон например, а потом по нему искать 🙂
Daniil 👾
Добрый день. Подскажите, почему в таком запросе laravel не учитывает select()? $articles = $user->article()->leftJoin('article_category', 'articles.id', '=', 'article_category.article_id')->where('article_category.category_id', $current_category->id)->where('user_id', $user->id)->where('id', '<=', $last)->select('article_category.category_id')->orderBy('id', 'desc')->paginate(30);
Daniil 👾
фигачит всю инфу, все 20 полей из бд
Daniil 👾
select('article_category.category_id')
Anton
вижу
Daniil 👾
оно в приницпе не обращает внимания на то что я там напишу
Maksim (Ellrion)
оно в приницпе не обращает внимания на то что я там напишу
убери селект а поле запихни вторым параметром в пагинейт метод
Anton
то есть paginate сам по себе селект и он все перебьет...
Anton
надо запомнить
Pavel Burak
ребята , у меня по команде из бд тянутся коллекции типа object(Illuminate\Database\Eloquent\Collection)#9645 (1) { ["items":protected]=> array(3) { [0]=> string(18) "Разрешено" [1]=> string(18) "Запрещено" [2]=> string(72) "Отдельные залы для курящих и не курящих" } } object(Illuminate\Database\Eloquent\Collection)#1617 (1) { ["items":protected]=> array(4) { [0]=> string(22) "Французская" [1]=> string(18) "Авторская" [2]=> string(24) "Мексиканская" [3]=> string(16) "Турецкая" } } Как сделать их единым массивом ?
Владислав
collapse
Maksim (Ellrion)
это отдельные коллекции причем тут колапс?
Maksim (Ellrion)
$collection_one->merge($collection_two)
Antonio
И не забыть куда-нибудь сохранить
Volodymyr
люди добрые, подскажите пожалуйста, через OneSignal нужно на мобилы делать нотификейшены по погоде но только для активных юзеров, сейчас по одному юзеру нахожу всю необходимую инфу, и даю запрос на погоду, получаю данные. Куда запихнуть все это дело, что бы все юзеров проверять и как захендлить этот метод. мой код: public function testUsersData() { $lastFiveDays = Track::where('created_at', '>', Carbon::now()->subDays(41))->where('user_id', 9)->get(); $sortOfTracksByDay = $lastFiveDays->groupBy (function ($item, $key) { return substr($item['created_at'], 8, 2); }); $amountOfDays = $sortOfTracksByDay->count(); function getAverageStartTime($arr, $amount) { $hours = 0; $minutes = 0; foreach ($arr as $item) { $hours += Carbon::parse($item->first()->created_at)->hour; $minutes += Carbon::parse($item->first()->created_at)->minute; $realMinute = ceil((floor((($hours*60 + $minutes)/$amount)/60*100 - intval((($hours*60 + $minutes) /$amount)/60)*100))*60/100); if ($realMinute < 10) { $realMinute = '0' . $realMinute; } } return floor((($hours*60 + $minutes)/$amount)/60) . ":" . $realMinute; } function getAverageFinishTime($arr, $amount) { $hours = 0; $minutes = 0; foreach ($arr as $item) { $hours += Carbon::parse($item->last()->created_at)->hour; $minutes += Carbon::parse($item->last()->created_at)->minute; $realMinute = ceil((floor((($hours*60 + $minutes)/$amount)/60*100 - intval((($hours*60 + $minutes) /$amount)/60)*100))*60/100); if ($realMinute < 10) { $realMinute = '0' . $realMinute; } } return floor((($hours*60 + $minutes)/$amount)/60) . ":" . $realMinute; } $average_start_time = getAverageStartTime($sortOfTracksByDay, $amountOfDays); $average_finish_time = getAverageFinishTime($sortOfTracksByDay, $amountOfDays); $lastGeoPoints = $sortOfTracksByDay->last()->last()->points; $lastpoint = end($lastGeoPoints); $weather = app('Gmopx\LaravelOWM\LaravelOWM'); $nearestWeather = $weather->getWeatherForecast($lastpoint); $user = User::where('id', 9)->get(); return [ 'user' => $user, 'avg_start_time' => $average_start_time, 'avg_finish_time' => $average_finish_time, 'last_geo_point' => $lastpoint, "temperature" => $nearestWeather->current()->temperature->getValue(), "isItRain" => $nearestWeather->current()->precipitation->getValue(), "humidity" => $nearestWeather->current()->humidity->getValue(), "weather" => $nearestWeather->current()->weather, ]; } в schedule или в джобс это впихнуть? просто не понимаю, как юзеры будут получаться и проверятся, так как сейчас делаю для одного
invariance
пиздец
invariance
ты сириасли думаешь кто то станет в этой куче кода разбираться?
invariance
ты б еще весь проект скинул и попросил пофиксить баги
invariance
чо уж
Daniil 👾
чиорт, а я как дурак сокращал вопросы...
Volodymyr
ты б еще весь проект скинул и попросил пофиксить баги
сорри за код, тупанул, но суть не в ньом
Dmitry
люди добрые, подскажите пожалуйста, через OneSignal нужно на мобилы делать нотификейшены по погоде но только для активных юзеров, сейчас по одному юзеру нахожу всю необходимую инфу, и даю запрос на погоду, получаю данные. Куда запихнуть все это дело, что бы все юзеров проверять и как захендлить этот метод. мой код: public function testUsersData() { $lastFiveDays = Track::where('created_at', '>', Carbon::now()->subDays(41))->where('user_id', 9)->get(); $sortOfTracksByDay = $lastFiveDays->groupBy (function ($item, $key) { return substr($item['created_at'], 8, 2); }); $amountOfDays = $sortOfTracksByDay->count(); function getAverageStartTime($arr, $amount) { $hours = 0; $minutes = 0; foreach ($arr as $item) { $hours += Carbon::parse($item->first()->created_at)->hour; $minutes += Carbon::parse($item->first()->created_at)->minute; $realMinute = ceil((floor((($hours*60 + $minutes)/$amount)/60*100 - intval((($hours*60 + $minutes) /$amount)/60)*100))*60/100); if ($realMinute < 10) { $realMinute = '0' . $realMinute; } } return floor((($hours*60 + $minutes)/$amount)/60) . ":" . $realMinute; } function getAverageFinishTime($arr, $amount) { $hours = 0; $minutes = 0; foreach ($arr as $item) { $hours += Carbon::parse($item->last()->created_at)->hour; $minutes += Carbon::parse($item->last()->created_at)->minute; $realMinute = ceil((floor((($hours*60 + $minutes)/$amount)/60*100 - intval((($hours*60 + $minutes) /$amount)/60)*100))*60/100); if ($realMinute < 10) { $realMinute = '0' . $realMinute; } } return floor((($hours*60 + $minutes)/$amount)/60) . ":" . $realMinute; } $average_start_time = getAverageStartTime($sortOfTracksByDay, $amountOfDays); $average_finish_time = getAverageFinishTime($sortOfTracksByDay, $amountOfDays); $lastGeoPoints = $sortOfTracksByDay->last()->last()->points; $lastpoint = end($lastGeoPoints); $weather = app('Gmopx\LaravelOWM\LaravelOWM'); $nearestWeather = $weather->getWeatherForecast($lastpoint); $user = User::where('id', 9)->get(); return [ 'user' => $user, 'avg_start_time' => $average_start_time, 'avg_finish_time' => $average_finish_time, 'last_geo_point' => $lastpoint, "temperature" => $nearestWeather->current()->temperature->getValue(), "isItRain" => $nearestWeather->current()->precipitation->getValue(), "humidity" => $nearestWeather->current()->humidity->getValue(), "weather" => $nearestWeather->current()->weather, ]; } в schedule или в джобс это впихнуть? просто не понимаю, как юзеры будут получаться и проверятся, так как сейчас делаю для одного
Мне показалось или у тебя и правда функция объявлена внутри метода?
Dmitry
даже две )
Volodymyr
даже две )
есть такое
Dmitry
😂
Dmitry
ООП. Какое ООП?