Vyacheslav
https://mattstauffer.com/blog/using-sparkpost-for-transactional-emails-with-laravel/
Stanislav
ну сделай $query->selectRaw(...)->addSelect(...)
спасибо. Не без костыля, но помогло. Дело в том, что в таком случае после выражения в selectRaw добавляет запятую, которая после дистинкта мне не надо. Пришлось добавить первый элемент массива в selectRaw, а остальные уже в addSelect
Stanislav
про 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
да мои примерно там же где и твои заканчиваются
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 👾
оно в приницпе не обращает внимания на то что я там напишу
Daniil 👾
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
И не забыть куда-нибудь сохранить
Maksim (Ellrion)
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 👾
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
ООП. Какое ООП?