These are chat archives for LaravelRUS/chat

23rd
Jan 2017
salamon5000
@salamon5000
Jan 23 2017 05:56
всем привет
KarmaBot
@KarmaBot
Jan 23 2017 05:56
@salamon5000, привет =)
salamon5000
@salamon5000
Jan 23 2017 05:57
test
здесь кно нибудь может посмотреть фрагмент PHP кода?
Ivan
@Hunternnm
Jan 23 2017 07:10
@salamon5000 у нас принято сразу писать по делу. И только по ларе
Anton Vorontsov
@symbios-zi
Jan 23 2017 07:50
@salamon5000 laravel.io/bin
Soprun Vladislav
@vlsoprun
Jan 23 2017 07:53
Здорова мальчишки и девчонки :wink:
Anton Vorontsov
@symbios-zi
Jan 23 2017 07:54
@vlsoprun а как же их родители?
projct1
@projct1
Jan 23 2017 08:29
подскажите плз, почему при настроенном параметре protected $dates = ['remind_at']; и при сохранении модели всегда возникает ошибка:
InvalidArgumentException in Carbon.php line 582:
Data missing
Ivan
@Hunternnm
Jan 23 2017 08:30
Ты шутишь?
@rorc как ты дату передаешь?
projct1
@projct1
Jan 23 2017 08:32
@Hunternnm без разницы как, либо null, либо пустая строка, либо обычная дата в формате Y-m-d H:i:s
Eldar
@MyZik
Jan 23 2017 08:32
Ребят, всем привет. Есть кто работал с Telegram Bot API PHP SDK?
https://github.com/irazasyed/telegram-bot-sdk
Проблема имеется, не получается решить :c
KarmaBot
@KarmaBot
Jan 23 2017 08:32
@MyZik даров!
Ivan
@Hunternnm
Jan 23 2017 08:33
@rorc а как надо слать?
projct1
@projct1
Jan 23 2017 08:33
@Hunternnm не понимаю тебя
@Hunternnm это поле мутироваться в инстанс карбона должно при получении, а не сохранении же
Ivan
@Hunternnm
Jan 23 2017 08:35
@rorc а вот и нет
projct1
@projct1
Jan 23 2017 08:37
@Hunternnm в чём косяк то я не пойму
Ivan
@Hunternnm
Jan 23 2017 08:38
@rorc нужно либо валидную строку слать, либо инстанс
projct1
@projct1
Jan 23 2017 08:38

@Hunternnm

либо обычная дата в формате Y-m-d H:i:s

всё равно ошибка, какой бы параметр я не передавал
Ivan
@Hunternnm
Jan 23 2017 08:39
@rorc ну покажи код, как создаешь
projct1
@projct1
Jan 23 2017 08:39
@Hunternnm а если null хочу например, необязательный параметр если у меня, то что делать? неужели лара не распознаёт это?
Ivan
@Hunternnm
Jan 23 2017 08:39
@rorc а у тебя поле nullable?
projct1
@projct1
Jan 23 2017 08:40
@Hunternnm да
Ivan
@Hunternnm
Jan 23 2017 08:41
@rorc код покажи
projct1
@projct1
Jan 23 2017 08:44
@Hunternnm с обычной строкой разобрался, я без секунд передавал.... всё равно хрень
Ivan
@Hunternnm
Jan 23 2017 08:45
@rorc ну если без секунд то создай метод getDateFormat() и пиши там как передаешь
вроде так метод обзывается
и почему хрень?
projct1
@projct1
Jan 23 2017 08:47
@Hunternnm с прописным protected $dateFormat = 'Y-m-d H:i' вообще ошибка
ErrorException in Carbon.php line 582:
Trailing data
проще не использовать эти "фичи"
Alexander
@Dualse
Jan 23 2017 09:35

То чувство, когда попросили "10 раз" показать код, а в ответ

проще не использовать эти "фичи"

@rorc Проще не использовать Laravel
alexspi
@alexspi
Jan 23 2017 09:55
И тут фсем привет
KarmaBot
@KarmaBot
Jan 23 2017 09:55
@alexspi, здравствуй.
Anton Vorontsov
@symbios-zi
Jan 23 2017 10:10
@Dualse и не использовать эту профессию для зарабатывания денег
Dmitry Shlyomin
@dmitry1337
Jan 23 2017 10:17
Всем привет!
KarmaBot
@KarmaBot
Jan 23 2017 10:17
@dmitry1337, привет, как настроение?
Dmitry Shlyomin
@dmitry1337
Jan 23 2017 10:18
не подскажите, совместима ли owl admin с ларой 5.3?
Alexander
@Dualse
Jan 23 2017 10:25
@symbios-zi +1. Грузчиком то проще
Anton Vorontsov
@symbios-zi
Jan 23 2017 10:27
@Dualse или шофёром
Alexander
@Dualse
Jan 23 2017 10:27
@symbios-zi Ну хз. Шофером то еще правила надо знать
Anton Vorontsov
@symbios-zi
Jan 23 2017 10:28
@Dualse тогда да. Согласен
Roman Sadoyan
@core01
Jan 23 2017 10:31
дегустатором вина тоже норм
главное регулярно ходить на работу (для опохмела)
Xannn94
@Xannn94
Jan 23 2017 11:08

Всем привет. подскажите пожалуйста почему вот так Объект создаётся

$searchName = \App\Modules\Blog\Facades\BlogSitemap::class;
$searchModule = new $searchName();

а вот так вылетает fatalExeption с подсказкой что класс не существует(но он существует)

$searchName = 'App\Modules\\' . $module['basename'] . '\Facades\\' . $module['basename'] . 'Sitemap';
$searchModule = new $searchName();

пути в переменной $searchName одинаковые в обоих случаях

KarmaBot
@KarmaBot
Jan 23 2017 11:08
О! @Xannn94! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
Alexander
@spartaque
Jan 23 2017 11:28
@Xannn94 должно работать, попробуй оба варианта сравнить через strcmp
JhaoDa
@jhaoda
Jan 23 2017 11:44
Ivan
@Hunternnm
Jan 23 2017 11:54
@Xannn94 \ в начале ставил?
Nikita Stenin
@stenin-nikita
Jan 23 2017 11:54
@Xannn94 Из какого неймспейса создаешь класс? Попробуй добавить слэш вначале.
Alexander
@spartaque
Jan 23 2017 11:55
@Hunternnm @stenin-nikita не нужно его добавлять, инфа соточка
Roman Sadoyan
@core01
Jan 23 2017 12:09
по удаляют блин свои сообщения
потом мне кажется что у меня глюки
видел ли я вопрос про выборку из моделей product и category или не видел...
Xannn94
@Xannn94
Jan 23 2017 12:31
Разобрался. Теперь другой вопрос. Как нибудь можно проверить есть ли у модели поле active например?
Alexander
@spartaque
Jan 23 2017 12:49
@Xannn94 ну и? В чем проблема хоть была?
@core01 извини, я удалил, так как нашел решение с whereHas в доке
Roman Sadoyan
@core01
Jan 23 2017 13:24
@spartaque т.е. ты используешь и whereHas и where?
т.е. = то есть
Alexander
@spartaque
Jan 23 2017 13:48
@core01 ну я написал
Product::where('type', 'box')->whereHas('category', function($query){
   $query->where('type', 'gift');
});
Roman Sadoyan
@core01
Jan 23 2017 13:48
хмм
Alexander
@spartaque
Jan 23 2017 13:49
@core01 есть еще варианты как это можно сделать? я просто использовал первый подходящий
Roman Sadoyan
@core01
Jan 23 2017 13:49
да нет вроде
ну если только без Eloquent
да и так в принципе понятно тоже
Alexander
@spartaque
Jan 23 2017 13:51
@core01 ну можно и с leftJoin + where, но так чище получается
Roman Sadoyan
@core01
Jan 23 2017 13:52
можно еще в scope вынести это дело
но лефтЖоин хуже, Eloquent это круто
кто нибудь знает Laravel Elixir переименовали во что нибудь?)
Alexander
@spartaque
Jan 23 2017 13:54
@core01 mix
Roman Sadoyan
@core01
Jan 23 2017 13:56
уже 5.4
емае
Artem Bogomolov
@TheDeveloperTom_twitter
Jan 23 2017 13:57
Подскажите, уже можно юзать 5.4?
Ivan
@Hunternnm
Jan 23 2017 13:57
@core01 официально пока что 5,3
@TheDeveloperTom_twitter юзай, а почему бы и нет?
Roman Sadoyan
@core01
Jan 23 2017 13:59
@spartaque мне вариат с Frontier больше нравился
как я понял, они вырезали полностью elixir - теперь просто в gulpfile можно юзать mix
JhaoDa
@jhaoda
Jan 23 2017 14:02
Хочу напомнить всем торопыгам, что в ветку 5.4 до сих пор делаются коммиты
Какие они там, ВС или нет — вопрос. Так что исключительно для лабораторных испытаний
orionych
@orionych
Jan 23 2017 15:02
всем привет! Хотел спросить доводилось ли кому-нибудь делать связывание мульти ключевых структур - например типа ОКПД 2? получается что у них вместо 1 ключевого значения идут сразу 3 - кто как делал в таких случаях? и есть ли такая привязка на laravel?
KarmaBot
@KarmaBot
Jan 23 2017 15:02
@orionych, и тебе привет ;)
Anton Kartsev
@bigperson
Jan 23 2017 15:03
Всем привет. Посоветуйте пожалуйста лучший кейс. Есть пользователи модель User. У пользователей может есть полиморфная связь контактов модель Contact (email'ы, телефоны). Необходимо как то хранить информацию о том, на какие уведомления подписан пользователь. Типы уведомлений по событиям: Создан заказа, изменен заказа, удален и т.д., по способу оповещения: sms, email, на сайте (броадкаст). Как правильно хранить информацию на какие события и какие каналы уведомлений подписан пользователь, чтоб потом ей удобно было пользоваться и изменять?
KarmaBot
@KarmaBot
Jan 23 2017 15:03
@bigperson, привет, как настроение?
Roman Sadoyan
@core01
Jan 23 2017 15:03
@orionych 1:М 1:М вот и связь 3х таблиц
orionych
@orionych
Jan 23 2017 15:03
@core01 1:М 1:М а что это такое?
Roman Sadoyan
@core01
Jan 23 2017 15:03
один ко многим
Но у ОКПД 2 там еще глубже же все
orionych
@orionych
Jan 23 2017 15:04
@core01 не - там идея в том что второе значение ключей не уникальное
Roman Sadoyan
@core01
Jan 23 2017 15:04
Ну это же на уровне базы решается, ларка тут не причем
orionych
@orionych
Jan 23 2017 15:04
@core01 ну да там 4 ключа бывают
@core01 если сделать строкой то да - но если делать не строкой а числами?
@core01 наверняка у людей такие задачи стояли - может быть есть решение не строковое
Roman Sadoyan
@core01
Jan 23 2017 15:07
просто у тебя ключ не должен быть ключем в БД)
а ты просто программно будешь это делать :D
orionych
@orionych
Jan 23 2017 15:09
@core01 ты имеешь ввиду под набор завести id?
Roman Sadoyan
@core01
Jan 23 2017 15:09
да
orionych
@orionych
Jan 23 2017 15:10
@core01 ну это я понял) а есть ли еще какие-то - так проще делать выборки если будет multi index
Roman Sadoyan
@core01
Jan 23 2017 15:11
@orionych у нас вообще в одной БД все
в одной таблице*
orionych
@orionych
Jan 23 2017 15:11
@core01 строковое?
Roman Sadoyan
@core01
Jan 23 2017 15:12
 `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `PARENT_ID` int(11) DEFAULT NULL COMMENT 'Идентификатор узла предка в иерархии',
  `CODE` varchar(12) DEFAULT NULL COMMENT 'Код',
  `PARENT_CODE` varchar(12) DEFAULT NULL COMMENT 'Цифровой код страны',
  `NAME` text COMMENT 'Полное наименование страны',
  `COMMENT` text COMMENT 'Полное наименование страны',
  `ACTUAL` tinyint(1) DEFAULT NULL COMMENT 'Признак актуальности',
  PRIMARY KEY (`ID`)
мда
комменты прям отражают суть)
orionych
@orionych
Jan 23 2017 15:13
@core01 так у тебя 1 идентификатор страны то
Roman Sadoyan
@core01
Jan 23 2017 15:14
http://pix.toile-libre.org/upload/original/1485184435.png
@orionych ?
JhaoDa
@jhaoda
Jan 23 2017 15:16
@core01 картинку заверни
Roman Sadoyan
@core01
Jan 23 2017 15:16
здесь как я понял комментарии скопированы бездумно
@jhaoda она относится к текущему диалогу и никому не мешает ведь
orionych
@orionych
Jan 23 2017 15:17
@core01 хмм - получается он у тебя как int хранится полный код?
Roman Sadoyan
@core01
Jan 23 2017 15:17
@orionych varchar 12
orionych
@orionych
Jan 23 2017 15:18
@core01 не это код - а id у тебя как int вроде
@core01 а ну это id обычный - я думал кода
Roman Sadoyan
@core01
Jan 23 2017 15:19
http://pix.toile-libre.org/upload/original/1485184752.png
Да это обычный
вот так выглядит, самые последние записи.
естественно индексы нужно будет раставить на parent_code и code
Akhmed Timurziev
@timurziev
Jan 23 2017 15:20
привет, ребята. реализую теги к статьям. при редактировании статьи, нужно чекать изменение тегов. есть ли возможность стандартными средствами сделать detach всех тегов, с которых сняли галочку и attach тех не которые поставили
KarmaBot
@KarmaBot
Jan 23 2017 15:20
Будь как дома, @timurziev, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
orionych
@orionych
Jan 23 2017 15:21
@core01 ну да - вот и у меня по сути так же - получается грамоздко - если бы можно было бы связывать без этого
Akhmed Timurziev
@timurziev
Jan 23 2017 15:21
то есть и при создании, и при редактировании будет в реквесте приходить массив ид нужных тегов
Alexander Melihov
@melihovv
Jan 23 2017 15:22
Akhmed Timurziev
@timurziev
Jan 23 2017 15:23
@melihovv огромное спасибо! прозевал этот метод при чтении документации
Roman Sadoyan
@core01
Jan 23 2017 15:26
@orionych это по сути единственный правильный способ. База окведов наврятли будет часто обновлятся
orionych
@orionych
Jan 23 2017 15:28
@core01 ну почему - вот если создать unique key на основе 3х ключей и связывать по нему - но доков найти по этому поводу не могу - может думал тут кто знает
Roman Sadoyan
@core01
Jan 23 2017 15:28
так связанный ключ есть же такое понятие
orionych
@orionych
Jan 23 2017 15:30
@core01 ну так вот я хочу связываться по нему
@core01 мне кажется так будет правильнее
Roman Sadoyan
@core01
Jan 23 2017 15:31
да нет.
Так тоже не плохо. Учитывая что у меня уже рабочее решение по этому поводу есть
т.е. это примеры из реальной базы
только вот не я её проектировал
orionych
@orionych
Jan 23 2017 15:32
@core01 да у меня тоже есть - однако это создает большие проблемы при связывании - особенно ОКВЭДов - как ты говоришь)
@core01 так как вышли новые - хочу перепроектировать кое-что - чтобы уже нормально было
Dave
@aios
Jan 23 2017 17:15
@Ellrion ты как то давал гист на лог запросов
@Ellrion можешь продублировать?
Dmitriy
@foRsxs
Jan 23 2017 17:31
Всем привет! Мигрирую с 5.2 на 5.3, но в этом месте не пойму что не так
public function scopeUsertask($query,$userId){
            $query->where(function ($_query) use ($userId) {
                            $_query->where('user_creater_id','=',$userId)
                                  ->orWhere('user_worker_id', '=', $userId)
                                  ->orWhere('user_control_id', '=', $userId);
            });
    }
KarmaBot
@KarmaBot
Jan 23 2017 17:31
Приветствую тебя, @foRsxs!
Dmitriy
@foRsxs
Jan 23 2017 17:33
Читал в доке что нельзя начинать с orWhere, но у меня все норм
Alexander
@Dualse
Jan 23 2017 17:37
@foRsxs А что подразумевается под фразой "что не так"?
Dmitriy
@foRsxs
Jan 23 2017 17:45
@Dualse запрос возращается пустым
ArtMik
@ArtMik
Jan 23 2017 17:46

Всем привет! Подскажите, в чем может быть проблема. При сохранении в бд, не сохраняется строка (ссылка на картинку).

User::create([
                    'name' => $user_info->first_name . " " . $user_info->last_name,
                    'vk_id' => $data->user_id,
                    'vk_token' => $data->access_token,
                    'vk_photo' => $user_info->photo_big
                ]);

При этом все остальное сохраняется. Тип vk_photo - TEXT

В переменной значение есть.

KarmaBot
@KarmaBot
Jan 23 2017 17:46
О! @ArtMik! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
Alexander
@Dualse
Jan 23 2017 17:47
@foRsxs А на 5.2 было все гуд?
Dmitriy
@foRsxs
Jan 23 2017 17:47
Да
@Dualse да, одна база. Там работает, здесь нет
Alexander
@Dualse
Jan 23 2017 17:47
@ArtMik Покажи, что в $fillable
ArtMik
@ArtMik
Jan 23 2017 17:48
@Dualse там пусто
Alexander
@Dualse
Jan 23 2017 17:48
@ArtMik А в $guarded?
ArtMik
@ArtMik
Jan 23 2017 17:49
@Dualse блин, не тот проект смотрел xD
В $fillable добавил, но в другой проект
Roman Sadoyan
@core01
Jan 23 2017 18:21
@orionych держи в курсе, если получится как-то хорошо это сделать.
Мне просто для информации, наврятли на работе будут менять эти ОКПД/Окведы
оно?
orionych
@orionych
Jan 23 2017 19:00
@core01 добро
Roman Sadoyan
@core01
Jan 23 2017 19:01
ok
Alexander
@Dualse
Jan 23 2017 19:10
@Ellrion лучше линк на гист заверни
Юзает кто нибудь?
мне нужна транслитерация / перевод
Юзаю все как описано - он мне пишет - Non-static method IvanLemeshev\\Laravel5CyrillicSlug\\Slug::make() should not be called statically
Maksim (Ellrion) Platonov
@Ellrion
Jan 23 2017 19:39
@Dualse сорян. Хз как в мобильной версии редактировать(
Alexander
@Dualse
Jan 23 2017 19:40
@core01 Разве такое не проще на фронте юзать?
Roman Sadoyan
@core01
Jan 23 2017 19:40
думаю нет
проще же на бэке при сохранении сразу alias прописать и все
Alexander
@Dualse
Jan 23 2017 19:41
@core01 А если сеошник захочет написать кастомный slug?
Roman Sadoyan
@core01
Jan 23 2017 19:43
@Dualse ты мне предлагаешь заюзать какой-нибудь ангуляр или vue
но у меня этого нет
Alexander
@Dualse
Jan 23 2017 19:44
@core01 Ну можно обойтись и js+ajax для проверки уникальности slug'a
Roman Sadoyan
@core01
Jan 23 2017 19:44
ну не знаю
это все не то
Я разве не могу сделать это на бэке?
Что бы алиас был в бд?
захочет свое - буду городить свое, мне пока это не важно, я просто хочу что бы урл был на латинице
Alexander
@Dualse
Jan 23 2017 19:47
@core01 Ну я как вариант предложил
@core01 Ты точно фасад используешь?
Roman Sadoyan
@core01
Jan 23 2017 20:00
?
Alexander
@Dualse
Jan 23 2017 20:04
@core01 'Slug' => 'IvanLemeshev\Laravel5CyrillicSlug\SlugFacade', это используешь в коде?
Roman Sadoyan
@core01
Jan 23 2017 20:04
Да
'Slug' => 'IvanLemeshev\Laravel5CyrillicSlug\SlugFacade',
Вот так у меня
А ты вообще не используешь роутинг на беке с привязкой к урл?
т.е. делаешь рестфул приложение
типа СПА?
может с 5.3 эта версия не идет.
Шторм сразу пишет что так нельзя
Roman Sadoyan
@core01
Jan 23 2017 20:11
@Dualse думаю тогда этот заюзать https://github.com/ElForastero/Transliterate
Anton Vorontsov
@symbios-zi
Jan 23 2017 20:12
@Ellrion на мобилке нельзя редактировать. Грустишка
fakefakefake12
@fakefakefake12
Jan 23 2017 20:14
@core01 по методам одинаково. Как написал автор > работает - работает
orionych
@orionych
Jan 23 2017 20:44
Всем еще раз привет!
KarmaBot
@KarmaBot
Jan 23 2017 20:44
@orionych, и тебе привет ;)
Alexander
@Dualse
Jan 23 2017 20:45

'Slug' => 'IvanLemeshev\Laravel5CyrillicSlug\SlugFacade',

@core01 А в самом контроллере (или где используешь), как пишешь?

Roman Sadoyan
@core01
Jan 23 2017 20:46
@Dualse пишу Slug::make(
Alexander
@Dualse
Jan 23 2017 20:48
@core01 А подключаешь use Slug?
Roman Sadoyan
@core01
Jan 23 2017 20:48
use IvanLemeshev\Laravel5CyrillicSlug\Slug;
Alexander
@Dualse
Jan 23 2017 20:48
@core01 Ну вот, это же не фасад
Roman Sadoyan
@core01
Jan 23 2017 20:49
и его типо не так надо?
Alexander
@Dualse
Jan 23 2017 20:49
@core01 замени на use Slug
Roman Sadoyan
@core01
Jan 23 2017 20:49
Сейчас
orionych
@orionych
Jan 23 2017 20:50
Люди подскажите - не могу достучаться до таблицы pivot - хотя связывание есть, необходимо получить дополнительные поля таблицы - а никак не выходит
'''
$e->offer_versions->pivot
PHP error: Undefined property: Illuminate\Database\Eloquent\Collection::$pivot on line 1
'''
Roman Sadoyan
@core01
Jan 23 2017 20:50
композер блин прожорливый какой-то
orionych
@orionych
Jan 23 2017 20:50
$e->offer_versions->pivot
PHP error:  Undefined property: Illuminate\Database\Eloquent\Collection::$pivot on line 1
Alexander
@Dualse
Jan 23 2017 20:51
@orionych Можно редактировать
Roman Sadoyan
@core01
Jan 23 2017 20:51
что такое $e?
orionych
@orionych
Jan 23 2017 20:51
 App\OfferVersion {#745
           id: "14401",
           offer_id: "14428",
           version: "1",
           name: "sp1000 силос панельный",
           okv_id: "978",
           vat: "18.00",
           time: "14",
           time_plus: "2",
           delivery_id: "0",
           ourpayment: "0",
           created_at: "2017-01-23 20:18:14",
           updated_at: "2017-01-23 20:18:14",
           pivot: Illuminate\Database\Eloquent\Relations\Pivot {#711
             equipment_id: "3285",
             offer_version_id: "14401",
             count: "1.0000",
             price: "190000.0000",
             time: "0",
Alexander
@Dualse
Jan 23 2017 20:51
$e->offer_versions
@orionych Я так подозреваю - это коллекция?
orionych
@orionych
Jan 23 2017 20:52
@Dualse да
Alexander
@Dualse
Jan 23 2017 20:53

@orionych Уточню. У тебя в

$e->offer_versions

лежит несколько OfferVersion. Верно?

orionych
@orionych
Jan 23 2017 20:54
да может лежать несколько
Alexander
@Dualse
Jan 23 2017 20:54
@orionych Ну вот, а к какому из них тогда ты обращаешься ->pivot?
orionych
@orionych
Jan 23 2017 20:55
@Dualse мне нужно получить сумму всех цен
@Dualse если в них уже есть pivot - я думал что он выдаст коллекцию pivot
orionych
@orionych
Jan 23 2017 20:57
@Dualse ну да - но так он не выдает)
Alexander
@Dualse
Jan 23 2017 20:57
@orionych Почему?
orionych
@orionych
Jan 23 2017 20:58
$o->equipments->sum('price')
=> 0
Alexander
@Dualse
Jan 23 2017 20:58
У меня по пивот успешно считает сумму
@orionych Так ты же сам говорил, что тебе надо лезть в pivot
orionych
@orionych
Jan 23 2017 20:59
>>> $o->equipments->pivot->sum('price')
PHP error:  Undefined property: Illuminate\Database\Eloquent\Collection::$pivot on line 1
может косяк версии ? или я че-то не так подключил?
Alexander
@Dualse
Jan 23 2017 21:00
@orionych Еще раз. Ты не можешь обращаться ->pivot т.к. это поле у конкретного элемента
orionych
@orionych
Jan 23 2017 21:01
@Dualse надо обходить их в цикле?
@Dualse как мне получить сумму коллекции то в результате?
Alexander
@Dualse
Jan 23 2017 21:02
@orionych Так попробуй
$o->equipments->sum('pivot.price');
orionych
@orionych
Jan 23 2017 21:03
@Dualse так работает! спасибо
KarmaBot
@KarmaBot
Jan 23 2017 21:03
Спасибо (+1) для @Dualse принято! Текущая карма +124.
orionych
@orionych
Jan 23 2017 21:03
@Dualse и коллекции будет считать?
Alexander
@Dualse
Jan 23 2017 21:03
@orionych В смысле?
orionych
@orionych
Jan 23 2017 21:04
@Dualse ну логично! это же для коллекции!
@Dualse а если нужна сумма произведений price*count - я так понимаю надо вводить функцию?
Alexander
@Dualse
Jan 23 2017 21:10
@orionych Можно callable передать в качестве аргумента. В доках есть пример.
Anton Vorontsov
@symbios-zi
Jan 23 2017 21:13
@Dualse это по коллекции будет подсчет?
интересно что будет на большой выборке
Alexander
@Dualse
Jan 23 2017 21:14
@symbios-zi Да
orionych
@orionych
Jan 23 2017 21:15
@Dualse пробую через reduce - но что-то не понятно как в этом случае обращаться к значениям
Anton Vorontsov
@symbios-zi
Jan 23 2017 21:15
@orionych почему бы не написать sql запрос свой?
я думаю что считать такие суммы лучше в бд. экономия ресурсов
orionych
@orionych
Jan 23 2017 21:17
@symbios-zi да хочу попробовать и так и так
Anton Vorontsov
@symbios-zi
Jan 23 2017 21:18
@Dualse вот думаю если у меня 100к заказов, то как быстро по такой коллекции будет считать? я честно не проверял
Alexander
@Dualse
Jan 23 2017 21:19
@symbios-zi Ну вот у меня такой подсчет есть в корзине, когда считается общая сумма корзины. Как по мне, то в этом случае удобно считать в коллекции.
orionych
@orionych
Jan 23 2017 21:19
>>> $o->equipments->reduce(function ($carry,$item) {return $carry['id']+$item['id'];})
=> 3285
так нет
>>> $o->equipments->reduce(function ($carry,$item) {return $carry['pivot.price']+$item['pivot.price'];})
=> 0
Alexander
@Dualse
Jan 23 2017 21:19
@orionych А ты уверен, что у тебя массив?
orionych
@orionych
Jan 23 2017 21:19
@Dualse ну нет - а объект то тоже не получается
Alexander
@Dualse
Jan 23 2017 21:20
@symbios-zi Ну так ты же 100к заказов сразу не показываешь
Anton Vorontsov
@symbios-zi
Jan 23 2017 21:21
@Dualse не показываю. Буду скоро статистику писать. Вот и думаю
orionych
@orionych
Jan 23 2017 21:21
>>> $o->equipments->reduce(function ($carry,$item) {return $carry['pivot']->price+$item['pivot']->price;})
PHP error:  Trying to get property of non-object on line 2
>>> $o->equipments->reduce(function ($carry,$item) {return $carry->pivot['price']+$item->pivot['price'];})
PHP error:  Trying to get property of non-object on line 2
>>> $o->equipments->reduce(function ($carry,$item) {return $carry->pivot->price+$item->pivot->price;})
PHP error:  Trying to get property of non-object on line 2
Alexander
@Dualse
Jan 23 2017 21:21
@orionych Сделай дамп. Я, лично, не знаю, какие данные приходят
А то будем гадать
orionych
@orionych
Jan 23 2017 21:24
App\Equipment {#771
  #table: "equipments"
  #connection: null
  #primaryKey: "id"
  #keyType: "int"
  #perPage: 15
  +incrementing: true
  +timestamps: true
  #attributes: array:9 [
    "id" => "3285"
    "firm_id" => "0"
    "product_id" => "0"
    "discount" => "0.00"
    "text" => """

      """
    "option" => "0"
    "disabled" => "0"
    "created_at" => "2017-01-23 20:17:45"
    "updated_at" => "2017-01-23 20:17:45"
  ]
  #original: array:14 [
    "id" => "3285"
    "firm_id" => "0"
    "product_id" => "0"
    "discount" => "0.00"
    "text" => """

      """
    "option" => "0"
    "disabled" => "0"
    "created_at" => "2017-01-23 20:17:45"
    "updated_at" => "2017-01-23 20:17:45"
    "pivot_offer_version_id" => "14401"
    "pivot_equipment_id" => "3285"
    "pivot_count" => "1.0000"
    "pivot_price" => "190000.0000"
    "pivot_time" => "0"
  ]
KarmaBot
@KarmaBot
Jan 23 2017 21:24
@orionych, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Alexander
@Dualse
Jan 23 2017 21:26
@orionych дальше сам?
orionych
@orionych
Jan 23 2017 21:26
@Dualse в общем есть поля где они имеются #original
@Dualse а как до original добраться?
да
сам
спасибо
KarmaBot
@KarmaBot
Jan 23 2017 21:27
@orionych, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Роман Сохарев
@greabock
Jan 23 2017 21:27
class MyModel extends Eloquent {

   #...
   public function newCollection(array $models = [])
   {
       return new MyCustomCollection($models);
   }
}
class MyCustomCollection extends EloquentCollection {

    public function totalPrice()
    {
         $totalPrice = 0;
         foreach($this->items as $item){
             $totalPice += $item->price*$titem->quantity;
         }
         return $totalPrice;
    }
}
$models = MyModel::all();
$totalPrice = $models->totalPrice();
dd($totalPrice);
KarmaBot
@KarmaBot
Jan 23 2017 21:27
@greabock, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
orionych
@orionych
Jan 23 2017 21:29
@greabock спасибо - я не сомневаюсь что так будет работать - интересно посмотреть решения в одну строчку
KarmaBot
@KarmaBot
Jan 23 2017 21:29
Спасибо (+1) для @greabock принято! Текущая карма +479.
orionych
@orionych
Jan 23 2017 21:29
@Dualse спасибо - помогли!
KarmaBot
@KarmaBot
Jan 23 2017 21:29
Спасибо (+1) для @Dualse принято! Текущая карма +125.
Роман Сохарев
@greabock
Jan 23 2017 21:31

если это не решение в одну строчку.

$totalPrice = $models->totalPrice();

то я китайский паровоз.
А все эти городушки с замыканиями, глянув на которые нельзя сразу понять, что оно делает - я б за них пальцы ломал.

orionych
@orionych
Jan 23 2017 21:33
@greabock ну да - но способы надо знать
Roman Sadoyan
@core01
Jan 23 2017 21:33
@Dualse undefined Class Slug
orionych
@orionych
Jan 23 2017 21:33
@greabock я еще не совсем сведущ во всех возможностях laravel
Alexander
@Dualse
Jan 23 2017 21:34
@greabock Разве интуитивно не понятно?
$items->sum(function ($item){
    return $item->price*$item->quantity;
 })
orionych
@orionych
Jan 23 2017 21:34
@Dualse интутивно понятно - но я то это делаю на модели pivot
Alexander
@Dualse
Jan 23 2017 21:35
@orionych $item->price замени на $item->pivot->price
Roman Sadoyan
@core01
Jan 23 2017 21:35
так, что-то по ходу работает
orionych
@orionych
Jan 23 2017 21:37
@Dualse то есть ты заменил модель и создать метод как работать с коллекцией
@Dualse а как mymodel понимает что это нужный класс - ты ее extendишь?
Alexander
@Dualse
Jan 23 2017 21:38
@orionych Ты наверно хотел написать @greabock
orionych
@orionych
Jan 23 2017 21:38
@Dualse да) сорри
@greabock а как mymodel понимает что это нужный класс - ты ее extendишь?
Igor Markin
@markinigor
Jan 23 2017 21:41
@orionych так он ж тебе в самом начале код написал
orionych
@orionych
Jan 23 2017 21:42
@markinigor ну да - а как модель понимает что она работает например с таблицей equipment
Alexander
@Dualse
Jan 23 2017 21:42
@orionych Ты не понял сути
orionych
@orionych
Jan 23 2017 21:43
@Dualse видимо - как php определяет в какую модель ему подставлять эти методы
Alexander
@Dualse
Jan 23 2017 21:44
@orionych Ок. Начнем с самого начала. Ты же используешь Eloquent?
orionych
@orionych
Jan 23 2017 21:44
@Dualse конечно) еще со времен PEAR, когда был начальный класс DB_DataObject
Alexander
@Dualse
Jan 23 2017 21:45
@orionych Ок. После успешного запросы ты получаешь коллекцию?
orionych
@orionych
Jan 23 2017 21:45
@Dualse ну да
Alexander
@Dualse
Jan 23 2017 21:45
@orionych А как она создается?
orionych
@orionych
Jan 23 2017 21:46
по сути это метод ->get к базе данных
@Dualse по сути это метод ->get() к базе данных
@Dualse работаем на уровне базы данных - потом переходим к коллекции
@Dualse DB->ojbect->json наверное так
Igor Markin
@markinigor
Jan 23 2017 21:47
@orionych эх Джаоды на тебя нет
orionych
@orionych
Jan 23 2017 21:47
@markinigor тсс
Alexander
@Dualse
Jan 23 2017 21:47

@orionych Вот метод ->get()

    public function get($columns = ['*'])
    {
        $builder = $this->applyScopes();
        $models = $builder->getModels($columns);
        if (count($models) > 0) {
            $models = $builder->eagerLoadRelations($models);
        }
        return $builder->getModel()->newCollection($models);
    }

Где тут создается коллекция?

orionych
@orionych
Jan 23 2017 21:48
@Dualse ->newCollection($models);
Alexander
@Dualse
Jan 23 2017 21:48
@orionych Ага. А теперь смотри, что тебе предлагает Роман:
class MyModel extends Eloquent {
   public function newCollection(array $models = [])
   {
       return new MyCustomCollection($models);
   }
}
Отсюда что следует?
orionych
@orionych
Jan 23 2017 21:49
@Dualse что в коллекции будет расширенный вариант с методом
Alexander
@Dualse
Jan 23 2017 21:50
@orionych Верно. Теперь понятно откуда и что берется?)
orionych
@orionych
Jan 23 2017 21:50
@Dualse не совсем - вопрос был откуда Model знает что мы работаем с таблицей Equipments
Alexander
@Dualse
Jan 23 2017 21:51
@orionych Эмм... Ну ты же сам сказал, что работаешь с Eloquent. Откуда твоя модель знает с какой таблицей работать?
То есть ты же вызываешь ->get(), получаешь данные
С какой-то таблице они то берутся
orionych
@orionych
Jan 23 2017 21:52
@Dualse ну да - но основные модели у меня наследуются от model
@Dualse там есть видимо автоматическое назначение $table из названия класса
Igor Markin
@markinigor
Jan 23 2017 21:54
@orionych а ты открой Model посмотри, ну или доку
Роман Сохарев
@greabock
Jan 23 2017 21:54
видимо придется мне достать эту древность
orionych
@orionych
Jan 23 2017 21:54
@markinigor хорошо хорошо
@markinigor только не бросай меня в терновый куст)
Роман Сохарев
@greabock
Jan 23 2017 21:54
чую, что неувядающий материал
orionych
@orionych
Jan 23 2017 21:56
@greabock ага - гляну завтра обязательно!
Igor Markin
@markinigor
Jan 23 2017 21:58
@orionych ы, "задал вопрос, а ответ завтра погляжу", иди ща читай, то люди потом разочаруются и не будут давать ответов
Alexander
@Dualse
Jan 23 2017 22:00
@orionych Я могу заспойлерить тебе ответ, но думаю меня сразу закидают помидорами)
orionych
@orionych
Jan 23 2017 22:00
@markinigor хорошо
@Dualse можно заспойлирить в приват)
Igor Markin
@markinigor
Jan 23 2017 22:01
@Dualse если дать человеку рыбу - он будет сыт один раз, а если дать леща...
Alexander
@Dualse
Jan 23 2017 22:01
@markinigor Ему будет больно?
@orionych Лучше сам разберись. Заодно глянь, что такое Алиасы)
Igor Markin
@markinigor
Jan 23 2017 22:02
@Dualse надеюсь, лишь бы только рыбачить научился )
orionych
@orionych
Jan 23 2017 22:03
@Dualse ) ладно ладно) не ругайте) я же учусь)
orionych
@orionych
Jan 23 2017 23:21
прочитал) такое бы руководство по сервис провайдерам) цены бы ему не было)