These are chat archives for LaravelRUS/chat

6th
Dec 2016
JhaoDa
@jhaoda
Dec 06 2016 03:09
Благословенные щупальца Ктулху, зачем я открыл http://pastebin.com/Pp27mvhE...
Роман Сохарев
@greabock
Dec 06 2016 03:12
Проблемс? )
JhaoDa
@jhaoda
Dec 06 2016 03:13
@greabock слушай, ну чувак в чате не первый месяц, а пишет такое
Мне кажется, за такое время флюиды чата, проникающие через монитор, должны были перестроить мозги на использование PSR и чтение доки
Юрий
@sawerus
Dec 06 2016 03:18
Нда. Проблемс повеселил )
Sergey
@UnQuaiz
Dec 06 2016 06:50
@aios ping... есть вопрос по SleepingOwl
dskozin
@dskozin
Dec 06 2016 07:14
Друзья, скажите пожалуйста существует ли для Лары какой либо пакет, который помогает сделать "нативное" SPA приложения без лапши с пробросом роутов в js фрэймворк? Я представляю это себе как небольшой js, который обращается к ларе по ajax и принимает рендер изменившихся компонентов. А в Ларе например переопределен метод view, который возвращает полный view с лэйаутами, если страница перезагружается или произошел переход на страницу с другим лэйаутом, и только рендер компонента (без экстенда лйаутом), если лэйаут не изменяется. А js вставляет возвращенный ему рендер отдельного компонента в положенное ему место в DOM.
Если вы понимаете о чем я ))
Rahim
@happyhaha
Dec 06 2016 07:22
Привет. Как записать файл не в storage папку, а в public?
KarmaBot
@KarmaBot
Dec 06 2016 07:22
Будь как дома, @happyhaha, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Dave
@aios
Dec 06 2016 07:22
@UnQuaiz ++
в чат слипы иди
@happyhaha public_path
Либо пиши драйвер в filesystems
не сложно там
Rahim
@happyhaha
Dec 06 2016 07:23
@aios $file->storeAs(public_path('uploads'), 'image.jpg' ); он пытается все это делать в папке storage
Dave
@aios
Dec 06 2016 07:25
@happyhaha $path = $request->photo->storeAs('images', 'filename.jpg', 's3');
Rahim
@happyhaha
Dec 06 2016 07:25
а все понял понял
Dave
@aios
Dec 06 2016 07:25
s3 это драйвер
Rahim
@happyhaha
Dec 06 2016 07:25
надо драйвер поменять в папку паблик
спс
KarmaBot
@KarmaBot
Dec 06 2016 07:25
@happyhaha, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Sergey
@UnQuaiz
Dec 06 2016 07:31
@aios о...точно. вот только появился и сразу хорошие мысли :-D
Dave
@aios
Dec 06 2016 07:31
@UnQuaiz говори че там у тебя?
Soprun Vladislav
@vlsoprun
Dec 06 2016 07:32
Здорова мужики!
Sergey
@UnQuaiz
Dec 06 2016 07:32
@aios у меня веселая бага с ModelConfigurationInterface возникла. и толи я туплю - толи лыжи не едут
Юрий
@sawerus
Dec 06 2016 07:32
@happyhaha Посмотри, что тебе железяка написала!
Sergey
@UnQuaiz
Dec 06 2016 07:34
@aios сначала зарегал через ServiceProvider - но чето мне не понравилось так продолжать. грохнул сервис провайдер переписал через замыкания конфигурацию модели. добавил navigation вручную. и ловлю BindingResolutionException Target [SleepingOwl\Admin\Contracts\ModelConfigurationInterface] is not instantiable
это у меня где-то не верно ModelConfiguration биндится ?
даже в issues нашел багу, но решения там нет
все что надо прописано, сконфигурировано. может где чего упустил из виду
Роман Сохарев
@greabock
Dec 06 2016 07:41
BindingResolutionException, как бы намекает, что для абстракции ModelConfigurationInterface не определена или неверно определена конкретика.
Sergey
@UnQuaiz
Dec 06 2016 07:42
@greabock $this->register($model = new ModelConfiguration($class)); ModelConfiguration - конкретика для этого интерфейса
именно тут бажится
Роман Сохарев
@greabock
Dec 06 2016 07:43
что есть $this в данном случае?
Sergey
@UnQuaiz
Dec 06 2016 07:45
@greabock облин..ты мне глаза разул. он пытается резолвить по интерфейсу, но не находит этой конкретики
я не туда смотрел
но легче не стало. то что он конкретику не может найти - это понятно. но проблема в том чтобы понять почему он её не находит - придется изучать недра Sleeping Owl Admin..
Роман Сохарев
@greabock
Dec 06 2016 07:51
ну так ты по стек-трейсу пройдись, посмотри где он ее инстанциировать пытается, выглядит так будто-то ты где-то в зависимостях (в конструкторе какого-то класса или методе контроллера) принимаешь ModelConfigurationInterface
dskozin
@dskozin
Dec 06 2016 07:54
Друзья, а на мой вопрос ни у кого ответа нет?
Юрий
@sawerus
Dec 06 2016 07:56

@dskozin

Если вы понимаете о чем я ))

видимо не поняли ))

Dave
@aios
Dec 06 2016 08:28
@dskozin поняли
просто если тебе не отвечают А:
вопрос задан не верно
Б: решение которое получится как ответ в этом вопросе - не верно.
что бы ты понимал SPA это отдельная консистенция со своим фреймворком - своим роутером - своими компонентами - она никак не должна быть взаимодействована с ларой
API может быть на чем угодно - а значит разделить нужно фронт и бек
Alexander Avakov
@pinguinjkeke
Dec 06 2016 08:34
Всем привееет!
Никто не пользовался Scout'ом? Возможно ли в нем создавать несколько индексов для одной модели?
Задача искать модели по одному полю или по нескольким полям
dskozin
@dskozin
Dec 06 2016 09:03
@aios SPA - это не консистенция, а концепция, которая может быть реализована без всяких фреймворков или с ними и может быть как с роутами внутри js фреймворка, так и без, и более того может взаимодействовать с чем и кем угодно.
Как ты наверное понял - я НЕ хочу разделять фронт и бэк.
Dave
@aios
Dec 06 2016 09:19
@dskozin ну давнокод на jquery (к примеру или на ванили) работающий как SPA я за SPA принимать никогда не буду - для этого есть много более грамотных инструментов. Если ты понимаешь о чем я. Разделение фронта и бека - это основа SPA потому что это ПРИЛОЖЕНИЕ. Оно автономно и должно работать лишь с данными выполняя все остальные функции фронта. Иглоукалываемое действие в мозг с помощью blade+(your favorite js framework) занимаются люди не способные понять что это НЕ основа закрытого проекта и пытаются обойти дабы выиграть в сео. Если тебе для этой части - то ничего не встречал. А так костыли велосипеды твое все.
Zlatoslav Desyatnikov
@zlodes
Dec 06 2016 09:22
@dskozin, очень жаль.
Роман Сохарев
@greabock
Dec 06 2016 09:25
@dskozin ты же понимаешь, что эти отрендренные с позволения сказать "компоненты", не будут работать как компоненты? Ввиду того факта, что кусок верстки - не есть компонент. К нему должен некоторый js прилагаться, как бы. Более того, во всех известных мне концепциях SPA, верстка - есть отражение состояния приложения, а если делать загрузку кусков верстки, то получается, что тебе нужно построить состояние приложения исходя из верстки... а это уже совсем жесть.
Dave
@aios
Dec 06 2016 09:26
@greabock с технической стороны того что он хочет добиться можно. но это очень не интуитивно, очень запутано, грубо тупо и очень много других негативных прилагательных - самое интересное что будет работать и кто то кому это будут впаривать - охотно купится. а вот поддерживать никто не будет.
dskozin
@dskozin
Dec 06 2016 09:26
@greabock Ну не совсем. Внутри как раз все можно сделать на js компонентах vue или реакта, а вот роутинг на них далать не очень приятно.
@aios Я не собираюсь никому ничего впаривать, тем более тебе. Если ты объяснишь почему это "грубо" и "тупо", буду тебе благодарен.
Роман Сохарев
@greabock
Dec 06 2016 09:30
@dskozin скажи лучше, какую проблему ты хочешь решить проектируя приложение таким образом?
dskozin
@dskozin
Dec 06 2016 09:33
@greabock Проблему проброса роутов в js фреймворк и в целом уменьшения js кода. Т.е. таким образом, что бы js код остался только для компонентов страницы. Допускаю, что идея неудачная, такой подход использовался лет 5 назад.
Dave
@aios
Dec 06 2016 09:34
@dskozin про меня никто ничего не говорит. я в принципе такую работу не принял бы. сейчас объясню почему.
Единственный камень преткновения SPA это SEO - То есть подчеркнув слово "Пока" я говорю о том что это вопрос времени. Сейчас SPA как бы реализует и солвит проблему резолва приложения - делает его более отзывчивым для пользователя - потому используется свой роутер - свое состояние -причем всего приложения (Vuex, Redux, Flux). Контролировать момент состояния через в нашем примере шаблонизатор - вполне возможно - очень даже есть умельцы которые это сделали - но они контролируют состояние не роута - а компонентов в отдельности - то есть добиться приложения в принципе не получилось - но это возможно. У такого соединения бека и фронта в принципе нет будущего - если он собирается развиваться - а то что приносит деньги должно развиваться. То есть фронт будет навсегда привязан к беку - а это как я уже сказал - полное авно.
Роман Сохарев
@greabock
Dec 06 2016 09:36

Проблему проброса роутов в js фреймворк

если честно, то я просто не вижу такой проблемы =(

Что бы не значили вообще эти "пробросы"
dskozin
@dskozin
Dec 06 2016 09:38
@greabock Ну и например делаешь ты простой сайт, но хочешь что бы при навигации контент грузился без перезагрузки страницы. В принципе делать связку api-json-js-view в таком варианте избыточно, поскольку гораздо удобнее управлять шаблонами в Ларе. Это все равно что делать обычный сайт, но не перезагружать статичные элементы и страницу.
Роман Сохарев
@greabock
Dec 06 2016 09:41
в общем, я тебя отчасти понял... но сам бы так делать никогда не стал. Пакетов таких тоже не видел
dskozin
@dskozin
Dec 06 2016 09:44
@aios Как ты понимаешь я несколько иное имею ввиду. Это действительно не совсем SPA. Все равно спасибо!
KarmaBot
@KarmaBot
Dec 06 2016 09:44
Спасибо (+1) для @aios принято! Текущая карма +286.
Genji
@Gennnji
Dec 06 2016 10:39
Всем привет! Кто-нибудь может подсказать, можно ли лаконично обновить items в результате paginate? Т.е. у класса LengthAwarePaginator
KarmaBot
@KarmaBot
Dec 06 2016 10:39
@Gennnji и тебе не хворать :)
Genji
@Gennnji
Dec 06 2016 10:39
@KarmaBot фига, тут текст уже раньше чем я отправляю кидается >_<
или такой бот...
JhaoDa
@jhaoda
Dec 06 2016 10:45
@Gennnji никак
JhaoDa
@jhaoda
Dec 06 2016 11:08
Засранец Тэйлор, почему было не назвать setItems...
@mdnsk eskerrik asko
KarmaBot
@KarmaBot
Dec 06 2016 11:09
Спасибо (+1) для @BaldaI принято! Текущая карма +95.
JhaoDa
@jhaoda
Dec 06 2016 11:10
@mdnsk ты зачем усы сбрил?
Кстати, наш бот — опасный тип. Он помнит ВСЕХ.
widg
@widg
Dec 06 2016 11:11
@KarmaBot ты меня помнишь?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:11
@widg да, он помнит
widg
@widg
Dec 06 2016 11:12
@SerafimArts и молчит
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:12
у тебя 3 кармы и 10 раз высказал благодарность +)
и в этом чатике ты с сентября +)
@widg он просто скромный
Mikhail Donskoy
@mdnsk
Dec 06 2016 11:13
@SerafimArts Можешь бота заставить забыть мой старый ник?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:13
@mdnsk там надо переписывать код
widg
@widg
Dec 06 2016 11:13
@SerafimArts право быть забытым
Mikhail Donskoy
@mdnsk
Dec 06 2016 11:14
@SerafimArts в базе поменять вручную нельзя?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:14
можно
но это разве тру вей?
надо синхронизацию какую-нибудь запилить
Mikhail Donskoy
@mdnsk
Dec 06 2016 11:14
Поменяй пожалуйста. Бот достал уже, палит постоянно.
JhaoDa
@jhaoda
Dec 06 2016 11:15
@mdnsk а ты решил начать жизнь с чистого листа? :)
Mikhail Donskoy
@mdnsk
Dec 06 2016 11:15
@jhaoda да ))
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:22
Mikhail Donskoy
@mdnsk
Dec 06 2016 11:22
@SerafimArts Спасибо!
KarmaBot
@KarmaBot
Dec 06 2016 11:22
Спасибо (+1) для @SerafimArts принято! Текущая карма +644.
Mikhail Donskoy
@mdnsk
Dec 06 2016 11:22
:laughing:
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:25
@mdnsk p.s. LaravelRUS/Laravel-Karma#50
Genji
@Gennnji
Dec 06 2016 11:27
@mdnsk Спасибо) но я это видел и всё же не очень лаконичный способ)
KarmaBot
@KarmaBot
Dec 06 2016 11:27
Спасибо (+1) для @mdnsk принято! Текущая карма +96.
JhaoDa
@jhaoda
Dec 06 2016 11:29
@Gennnji а как бы ты хотел? что в твоём понимании «лаконично»?
Genji
@Gennnji
Dec 06 2016 11:35
@jhaoda мне хочется не в контроллере items у результата paginate править через setCollection и getCollection, а использовать макрос для коллекции, чтобы внутри макроса получить коллекцию и обработать, причём этот же макрос хочется применить для коллекции в результате all, где нет дополнительных полей как у LengthAwarePaginator, возвращаемого paginate
кажется, меня осенило, надо кое-что попробовать
Zlatoslav Desyatnikov
@zlodes
Dec 06 2016 11:39
@SerafimArts, можно раз в сутки опрашивать gitter на предмет изменения имени.
Genji
@Gennnji
Dec 06 2016 11:41
не, не то... Если задавать макрос через Collection::macro, то применив к результату paginate макрос в результате оказывается не экземпляр пейджинатора, а коллекция(
можно было бы хотя бы макрос для пейджинатора написать отдельно
Zlatoslav Desyatnikov
@zlodes
Dec 06 2016 11:41
@Gennnji, вызови ещё раз paginate :trollface:
Genji
@Gennnji
Dec 06 2016 11:44
@zlodes дык, paginate - это метод билдера, а макрос возвращает уже коллекцию
Zlatoslav Desyatnikov
@zlodes
Dec 06 2016 11:44
@Gennnji, а. Криво прочитал.
Genji
@Gennnji
Dec 06 2016 11:45
=)
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:45
@zlodes 5к запросов на апи каждый день? =)
AnriKo
@AnriKo
Dec 06 2016 11:46
День добрый. Выложил сайт на хостинг. если заходишь в админку какое-то время работает потом блокирует весь сайт, отправляет парочку куки, и все "Сайт выполнил переадресацию слишком много раз" удаляю куки все нормально, потом опять тоже самое, не подскажите где это настроить?
KarmaBot
@KarmaBot
Dec 06 2016 11:46
Будь как дома, @AnriKo, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Zlatoslav Desyatnikov
@zlodes
Dec 06 2016 11:46
@SerafimArts, а там нельзя всех людей в чате получить сразу?
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:46
@zlodes сразу - нет
можно по чейнам
да, это вариант
получится примерно 30 запросов, норм
Zlatoslav Desyatnikov
@zlodes
Dec 06 2016 11:47
@SerafimArts, в пачке по 100? )
Kirill Nesmeyanov
@SerafimArts
Dec 06 2016 11:47
да
Orel
@2byte
Dec 06 2016 12:00
Всем привет
KarmaBot
@KarmaBot
Dec 06 2016 12:00
@2byte, привет =)
Orel
@2byte
Dec 06 2016 12:01
phpstorm вызов навигации по классам с помощью нажатия 2 раза shift изменили?
Alexander
@Dualse
Dec 06 2016 12:09
@2byte Нет
Dave
@aios
Dec 06 2016 12:09
@2byte оп? че там?
Orel
@2byte
Dec 06 2016 12:10
@Dualse 2016.3?
Alexander
@Dualse
Dec 06 2016 12:10
@2byte Да
Скажи, что не так. А то я может упустил этот момент
Orel
@2byte
Dec 06 2016 12:12
@Dualse ничего не происходит при двойном нажатии shift (
Alexander
@Dualse
Dec 06 2016 12:12
@2byte Ну у меня все гуд. Кстати, лучше в оффтоп идти) https://gitter.im/LaravelRUS/offtop
Orel
@2byte
Dec 06 2016 12:13
@Dualse да я уже вспомнил про него
Ivan
@Hunternnm
Dec 06 2016 12:40
@2byte всё работает
Orel
@2byte
Dec 06 2016 12:41
@Hunternnm но не у меня
Ivan
@Hunternnm
Dec 06 2016 12:41
@2byte ничего не перехватывает?
Orel
@2byte
Dec 06 2016 12:42
@Hunternnm Нахожу в настройках Search Everywhere пытаюсь установить клавишу, Shift попросту не видит нажатия. Просто другие кнопки назначил да и все.
Andrei Sosnov
@atehnix
Dec 06 2016 13:47
@2byte возможно каким-то чудом в этот момент нажатие Shift'а перехватывается другим приложением.. Ну или shift сломался.. :)
Orel
@2byte
Dec 06 2016 13:47
@atehnix шифт не сломался)
Anton Kartsev
@bigperson
Dec 06 2016 13:55

Народ подскажите по аутентификации для api. Задача пропускать запросы только от авторизированных пользователей. Аутентификация стандартная. В router/api есть группа правил:

Route::group(['middleware' => 'auth:api'], function () {...});

Все запросы подписываю заголовком X-CSRF-TOKEN, но мидлваря не пропускает запросы, если auth: убираю, то все работает.
В config/auth: 'guards' => [ 'api' => ['driver' => 'token', 'provider' => 'users']]

JhaoDa
@jhaoda
Dec 06 2016 13:57
@bigperson X-CSRF-TOKEN это не аутентификация
Роман Сохарев
@greabock
Dec 06 2016 13:59
внезапно ))
Denter
@Denterke
Dec 06 2016 14:04
Всем привет, со страницы на сервер доожно приходить значение date_time, однако такое поле поддерживается только в хроме и опере, что не очень хорошо, как думаете, это front-end задача склеить значение date и time и отослать на сервер, или же непосредственно в back-end'е принять эти два значения, склеить и уже потом записать в бд?
KarmaBot
@KarmaBot
Dec 06 2016 14:04
Не узнал тебя, @Denterke. Богатым будешь :)
Dave
@aios
Dec 06 2016 14:43
@Denterke если не предполагается никакой логики - то без разницы.. если в последствии поля date и time будут где то участвовать то однозначно на сервере.
Alexander Avakov
@pinguinjkeke
Dec 06 2016 14:47
Как лучше всего в Eloquent отфильтровать по столбцу привязанной hasOne таблицы
Anton Kartsev
@bigperson
Dec 06 2016 14:49
@jhaoda Создал в БД api_token, передаю его в заголовке token.
Alexander Avakov
@pinguinjkeke
Dec 06 2016 14:49
ой
отсортировать
User::with('profile')->orderBy('profile.first_name', 'asc')
Denter
@Denterke
Dec 06 2016 14:54
@aios спасибо за ответ, в бдтолько хранится datetime значение, просто front-end разработчик ленится переделать два раздельных поля(так нужно было раньше) в одно
KarmaBot
@KarmaBot
Dec 06 2016 14:54
Спасибо (+1) для @aios принято! Текущая карма +287.
Anton Kartsev
@bigperson
Dec 06 2016 15:22
Вроде разобрался, надо get параметром api_token передавать. Хорошобы еслиб его из заголовков цепляло
JhaoDa
@jhaoda
Dec 06 2016 15:24
@bigperson ты не поверишь...
Dave
@aios
Dec 06 2016 15:24
@bigperson но есть jwt
JhaoDa
@jhaoda
Dec 06 2016 15:25
@aios и ты не поверишь...
Orel
@2byte
Dec 06 2016 15:26
Но это уже совсем другая история
Anton Kartsev
@bigperson
Dec 06 2016 15:26
@aios для текущего проекта не хочу использовать jwt (да и пока не разбирался с ним)
@jhaoda поверю поверю, я вообще всем верю)))
JhaoDa
@jhaoda
Dec 06 2016 15:28
@bigperson ну тогда открой TokenGuard и изучи метод getTokenForRequest
Сергей
@abler98
Dec 06 2016 15:29
А где найти правила чата? Хочу перечитать.
Anton Kartsev
@bigperson
Dec 06 2016 15:36
@jhaoda Открывал. Смотрел, ничего не понял. Окрыл снова, перешел в bearerToken() - все понял, закрыл, исправил, проверил, все работает. Спасибо, ты лучший)))
@jhaoda Спасибо, кармабот оглох
KarmaBot
@KarmaBot
Dec 06 2016 15:37
Спасибо (+1) для @jhaoda принято! Текущая карма +1350.
Сергей
@abler98
Dec 06 2016 15:38
@jhaoda спасибо
KarmaBot
@KarmaBot
Dec 06 2016 15:38
Карма @jhaoda не потревожена. Слишком часто её пошатывали.
Сергей
@abler98
Dec 06 2016 15:39
Как думаете, есть ли смысл выносить здесь что-то в сервисы/репозитории?
http://pastebin.com/etq3BV4A
Denis Klimenko
@progsmile
Dec 06 2016 15:47
@abler98 я бы вынес Bouquet, но тогда не будет работать Route model binding и фиг с ним
в репозиторий
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 15:47
@abler98 можно ничего не трогать, а можно вынести валидацию например в FormRequest, так например там можно будет более централизованно менять что то, например сообщения ошибок валидации и т.п.
Dave
@aios
Dec 06 2016 15:48
@abler98 return response()->json($bouquet->photos()->detach($photo));
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 15:48
@progsmile репазитории + элоквент это булшит
Dave
@aios
Dec 06 2016 15:49
про эксепшн хендлеры кое кто кое что упустил видимо
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 15:49
@abler98 можно еще и метод заполнения данными вынести в класс билдер
Сергей
@abler98
Dec 06 2016 15:50
@progsmile @Ellrion ага, понял, спасибо, чём много всего
Denis Klimenko
@progsmile
Dec 06 2016 15:50
@Ellrion согласен, элоквент как энтити юзать, неважный варик
Dave
@aios
Dec 06 2016 15:50
@Ellrion ну это перебор)
Denis Klimenko
@progsmile
Dec 06 2016 15:50
но впринципе жить можно
до поры до времени :D
Сергей
@abler98
Dec 06 2016 15:51
@aios не совсем понял
Dave
@aios
Dec 06 2016 15:51
        $bouquet->name = $request->get('name');
        $bouquet->type = $request->get('type');
        $bouquet->amount = $request->get('amount');
        $bouquet->description = $request->get('description');
Сергей
@abler98
Dec 06 2016 15:51
@aios return response()->json($bouquet->photos()->detach($photo)); - я про это, что здесь не так?
Нужно ведь хоть какой-ответ отдавать :)
Dave
@aios
Dec 06 2016 15:51
@abler98 эксепш хендлеры не?
Сергей
@abler98
Dec 06 2016 15:52
@aios а где здесь исключение?
Dave
@aios
Dec 06 2016 15:52
@abler98 ну я про то что у тебя действие json повторяется.
во первых если у тебя все в json то можно наследовать Exception handler для json Ответов ошибок + наследовать Response возвращать данные обычным return
по второму вопросу
fillable
Выносить ничего в принципе не нужно - у тебя и так все более менее чисто - смущает что у тебя не везде проверяется последовательность действий - это создает препятствия при внедрении логики в эти самые последовательности
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 15:54
@aios что то даже я не понимаю о чем ты про обработчики эксепшенов. Он там true\false в джейсон ответе отправляет
Dave
@aios
Dec 06 2016 15:54
@Ellrion он повторяет действия response
@Ellrion что можно просто заменить на обычный return
если мне помнится лара автоматом при Ajax отдает json
туда я просто приплюсовал ексепшны для того что бы ошбки отдавались так же чисто для ajax
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 15:55
@aios он чётко говорит верни json. тебя же не смущает return redirect()->back() или return view()
Сергей
@abler98
Dec 06 2016 15:56
@aios нет, так не пойдёт, ларка сам отдают json только если скормить array, collection, jsonable...
Dave
@aios
Dec 06 2016 15:56
@Ellrion redirect()->back() не возвращает json - запрос распознает это как редирект это уже от клиента зависит как он обработает этот редирект и view view тем более отдается со маймтайпом text/html
Сергей
@abler98
Dec 06 2016 15:57
@aios у меня только некоторые действия выполняются через xhr запросы
Dave
@aios
Dec 06 2016 15:58
ну как скажешь. но я бы не чистил ничего - валидацию только вынес бы к чертям.
Сергей
@abler98
Dec 06 2016 15:58
@aios @Ellrion @progsmile спасибо
KarmaBot
@KarmaBot
Dec 06 2016 15:58
Спасибо (+1) для @aios принято! Текущая карма +288.
Спасибо (+1) для @Ellrion принято! Текущая карма +160.
Спасибо (+1) для @progsmile принято! Текущая карма +2.
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:01

@aios ну как бы я знаю что

redirect()->back() не возвращает json

Он возвращает инстанс Respos'a а если точнее RedirectResponsa. Точно так же как и return respose()->json() возвращает JsonResponse.

Dave
@aios
Dec 06 2016 16:02
@Ellrion а причем тут это - он взвращает нужный нам маймтайп. и если мы запросим его с ajax-mode Он все равно редиректнет.
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:03
@aios это тут при том что я не понял что тебе не понравилось в использовании return respose и при чём там были эксепшен хендлеры
Dave
@aios
Dec 06 2016 16:04
я увидел только контроллер - про ексепш хендлеры добавил что бы человек лишний раз не искал.
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:06
@aios чёт мы походу друг друга не понимаем) нафиг короче
Dave
@aios
Dec 06 2016 16:07
@Ellrion бе бе бе)
Denys
@dfinchenko
Dec 06 2016 16:19
Всем привет! Интересует мнение, как вы организовываете роуты. Есть например роут dashboard а также несколько других dashboard/users, dashboard/sites Сейчас это реализовано одним роутом: dashboard/{page} и потом в контроллере определяется какая зашла страница и в зависимости от этого рендерится та или иная вьюха. Такой способ был выбран из-за того, что это просто страницы со статической инфой, не нужен круд. Если бы нужен был круд, то тогда бы вопросов не было, создавался отдельный роут с котроллером и моделью.
KarmaBot
@KarmaBot
Dec 06 2016 16:19
@dfinchenko, ну рассказывай. Как жизнь? :)
Denys
@dfinchenko
Dec 06 2016 16:19
@KarmaBot Все бомба!
JhaoDa
@jhaoda
Dec 06 2016 16:24
Посоны, а как вы считаете, имеет место быть в модели такое делегирование
public function addItem(SmthItemInterface $item)
{
    return app(SmthItemsService::class)->addTo($this, $item);
}
Сергей
@abler98
Dec 06 2016 16:24
@dfinchenko это же бот, зачем ему отвечать? :D
Denys
@dfinchenko
Dec 06 2016 16:24
@abler98 Чтобы настроение боту поднять)
@abler98 Он грустит, ему никто не пишет)
Dave
@aios
Dec 06 2016 16:25
@jhaoda эм...
@dfinchenko эм..... шта?
@jhaoda а чем тебе пригляделось такое написание?
Сергей
@abler98
Dec 06 2016 16:26
@jhaoda а что в SmthItemsService?
Dave
@aios
Dec 06 2016 16:26
@abler98 тут скорее интересно что в addTo
Сергей
@abler98
Dec 06 2016 16:27
@aios ну это понятно, но ведь этот метод в SmthItemsService
JhaoDa
@jhaoda
Dec 06 2016 16:27

@aios потому что лучше писать в том же в контроллере

$smth->addItem($item)

чем

app(SmthItemsService::class)->addTo($smth, $item)
@abler98 @aios там код, который привязывает одну сущность к другой с разными проверками и прочим
Код толстый, в модель пихать как-то не хочется
Извечный вопрос: кто должен быть толстым — контроллер, модель или сервис?
Dave
@aios
Dec 06 2016 16:29
@jhaoda как по мне сервис
он должен содержать большую часть логики
модели и контроллеры должны быть тонкими - но это мое субъективное.
Сергей
@abler98
Dec 06 2016 16:30
@jhaoda не поделишься кодом? Интересно стало :)
JhaoDa
@jhaoda
Dec 06 2016 16:30
@aios тоже так думаю. Но визуально удобней обращаться к модели, поэтому возник вопрос
Dave
@aios
Dec 06 2016 16:30
@jhaoda да - но тогда модель должна будет содержать данную логику
тогда как минимум хотя бы наследовать ее и логику пихать в родительскую
а получать методы через интерфейс.
JhaoDa
@jhaoda
Dec 06 2016 16:30
@aios какую логику, какой родитель, ты о чем?
Dave
@aios
Dec 06 2016 16:31
@jhaoda ну ты говоришь что приятней обращаться к модели
но при этом она не должна содержать логики
JhaoDa
@jhaoda
Dec 06 2016 16:31
@aios ну, тупое делегирование вызова в сервис
Dave
@aios
Dec 06 2016 16:32
ну если с целью выполнения одного кейса привязывания то да - тупое.
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:32
@aios тебя сегодня трудно понять)
@jhaoda я бы не стал так делать. Раз уж отдал эту ответственность сервису, пусть он и делает что должен. Но в принципе ничего сильно плохого тоже не вижу
Dave
@aios
Dec 06 2016 16:32
@Ellrion не выспался :worried:
JhaoDa
@jhaoda
Dec 06 2016 16:33
@Ellrion ну понятно, что это просто сахар получается и можно в итоге пересластить
Dave
@aios
Dec 06 2016 16:33
@Ellrion 50% информации доходит только через невербальное общение что подразумевает получение 100% информации при наличии личного общения - а не через переписку =(((
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:36
Блин, голова уже пухнет. Никак не могу отсортировать по таблице, которую заджоинил. То abigious field ловлю, то никакого результата нет
Dave
@aios
Dec 06 2016 16:36
@pinguinjkeke покажи запрос
@pinguinjkeke тебе ведь по макс нужно?
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:38
                    User::join('securities', function ($join) {
                        $join->on('user.security_id', '=', 'securities.id')
                            ->select('securities.company_name')
                    })->orderBy('securities.company_name');
Dave
@aios
Dec 06 2016 16:38
эм...а елка что?
whereHas orderBy не понимает разве?
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:39
хочу отстортировать по имени компании охранного предприятия. Поэтому, делаю join company_name и сортирую по нему
@aios не понимаю что ты предлагаешь
Dave
@aios
Dec 06 2016 16:40
->whereHas('company', function($query){
return $query->orderBy('company_name')
}
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:41
нет
ты мне предлагаешь отсортировать включаемую таблицу
а мне нужно отсортировать главную по значениям включаемой
Сергей
@abler98
Dec 06 2016 16:42
@pinguinjkeke order by сортирует не таблицу, а результат запроса.
Dave
@aios
Dec 06 2016 16:42
включаемую это когда with('company '=>function($query){
return $query->orderBy('company_name')
}
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:44
@abler98 я ведь не коллекции сортирую
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:44
@pinguinjkeke попробуй добавить явный селект
User::join('securities as s', 's.id', '=', user.security_id')
   ->orderBy('s.company_name', 'desc')
   ->select('user.*') ->get();
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:44
@aios да это тоже самое
Dave
@aios
Dec 06 2016 16:45
@pinguinjkeke не увы.. не тоже самое.
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:45
@aios да как же. Это отсортирует включаемую таблицу
Dave
@aios
Dec 06 2016 16:45
@pinguinjkeke ты сначала попробуй - потом говори
я на этом собаку сьел.
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:47
@Ellrion да! точно! Огромное спасибо
KarmaBot
@KarmaBot
Dec 06 2016 16:47
Спасибо (+1) для @Ellrion принято! Текущая карма +161.
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:47
@aios сейчас попробую и твое решение
Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:47
@aios выспись) ты не прав)
Max Mova
@movetz
Dec 06 2016 16:47

но при этом она не должна содержать логики

@jhaoda
эм, не совсем и не всегда, есть такой паттерн/принцип GRASP "информационный эксперт", если в кратце, то ответственность должна быть назначена тому, кто владеет максимумом необходимой информации для исполнения, мол, у нас есть модель Order и все манипуляции c ним должны максимально происходить внутри, а не изменять состояние Order через сэттеры/публичные методы где-то в сервисе, в итоге меньше нарушается инкапсуляция, кода становится меньше и он становится более гибким.

Maksim (Ellrion) Platonov
@Ellrion
Dec 06 2016 16:47
@pinguinjkeke можешь не смотреть это не решение)
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:47
я знаю
я пишу обертку над Query Buidler для своих дататаблиц
и теперь, это сбивает мой select :(
JhaoDa
@jhaoda
Dec 06 2016 16:49
@movetz я не говорил, что модель не должна содержать логики. Я считаю, что она должна содержать её немного и логика должна быть не сложной.
Alexander Avakov
@pinguinjkeke
Dec 06 2016 16:52
@Ellrion есть какой-нибудь вариант, чтобы я мог сохранить select, которые определены уже? Они у меня добавлены как ['id', 'name']... без явного указания таблицы cars
Max Mova
@movetz
Dec 06 2016 16:53
@jhaoda соррян, я случайно выбрал твой ник вместо aios
JhaoDa
@jhaoda
Dec 06 2016 16:55
Вообще, многие бы проблемы исчезли, если бы элоквент-модели могли принимать параметры через конструктор не как массив...
Max Mova
@movetz
Dec 06 2016 16:56
вот не плохая лекция про грасп ютюбе
JhaoDa
@jhaoda
Dec 06 2016 16:56
@movetz заверни ссылку
Max Mova
@movetz
Dec 06 2016 16:58
@jhaoda зачем? просто интересно с какой проблемой ты столкнулся))
JhaoDa
@jhaoda
Dec 06 2016 16:59
@movetz что зачем? Ссылки заворачивать или параметры принимать не как массив?
Max Mova
@movetz
Dec 06 2016 17:10
@jhaoda в теории ты можешь переопределить метод гидрации модели и переопределить конструктор как тебе удобно.
 public static function hydrate(array $items, $connection = null)
 {
        $instance = (new static)->setConnection($connection);

        $items = array_map(function ($item) use ($instance) {
            return $instance->newFromBuilder($item);
        }, $items);

        return $instance->newCollection($items);
}
reidaigo
@reidaigo
Dec 06 2016 17:11
привет всем, есть кто работал с cartalyst platform?
KarmaBot
@KarmaBot
Dec 06 2016 17:11
@reidaigo, ну рассказывай. Как жизнь? :)
Max Mova
@movetz
Dec 06 2016 17:12
но нужно будет помудрить с инициализацией модели, создавать не через конструктор, а например через __wakeup как делает это доктрина
JhaoDa
@jhaoda
Dec 06 2016 17:13
@movetz именно, слишком много нюансов, да и попахивает это...
Проще на доктрину перейти :)
Max Mova
@movetz
Dec 06 2016 17:13
@jhaoda ну да, просто очень часто бывают ситуации когда нет пути назад, только говнять :D
reidaigo
@reidaigo
Dec 06 2016 17:15
есть кто работал с cartalyst platform? вопрос: создал страницу "главная", например. Где контроллер этой страницы, чтоб передать объекты/переменные?
Роман Сохарев
@greabock
Dec 06 2016 17:20
@reidaigo я что-то не могу даже вспомнить ни одного обитателя уютненького, кто бы хоть вскользь упоминал о том что использует хотябы один продукт cartalyst (ну разве что совсем отчаянные ввязывались в половые отношения с sentinel). Кроме того, не будет ложью сказать, что большинство обитателей чата либо вообще не слышали о cartalyst , либо не воспринимают их продукты всерьёз.
Max Mova
@movetz
Dec 06 2016 17:23
@jhaoda кстати есть уже готовый пакет для инициализации https://github.com/doctrine/instantiator
Dmitry Gusev
@GusevDV
Dec 06 2016 19:36
Здравствуйте! Господа, подскажите пожалуйста, куда-лучше засунуть функцию транслитерации для формировании url постов из заголовок постов? Дело в том, что функция понадобится не только в постах, но еще и в другом месте. Простите, вопрос думаю очень нубский
KarmaBot
@KarmaBot
Dec 06 2016 19:36
@Dmivlagus даров!
JhaoDa
@jhaoda
Dec 06 2016 19:37
@GusevDV знаешь, что такое PSR-0/PSR-4 и как композер работает?
Впрочем, даже знаний о композере хватит...
AnriKo
@AnriKo
Dec 06 2016 19:37
Вечер бодрый. Что может быть подскажите. на реальном хостинге когда захожу в админку через какое-то время лара присылает 2 куки (XSRF-TOKEN и laravel_session) и они блокируют сайт ERR_TOO_MANY_REDIRECTS, что это, где это пофиксить можно?
JhaoDa
@jhaoda
Dec 06 2016 19:38
@AnriKo это надо читать документацию и пытаться хоть немного разобраться в том, что используешь
AnriKo
@AnriKo
Dec 06 2016 19:39
читаю, пытаюсь
Dmitry Gusev
@GusevDV
Dec 06 2016 19:42
Оказывается хелпер есть) разобрался
AnriKo
@AnriKo
Dec 06 2016 19:46
@jhaoda я в VerifyCsrfToken прописал 'protected $except = [ 'admin/*' ];' все равно
JhaoDa
@jhaoda
Dec 06 2016 19:50
@AnriKo я и говорю, сначала надо разобраться, потом «прописывать»
@AnriKo во-первых, VerifyCsrfToken изначально никак не влияет на редиректы (но я не удивлюсь, если кто-то там что-то такое написал, потому что я чую, что это всё писал не ты), а во-вторых, ты только что открыл в приложении дыру размером с Гренландию
@AnriKo всё это ты бы знал, если бы потрудился просто прочитать документацию
AnriKo
@AnriKo
Dec 06 2016 19:55
@jhaoda да я писал, понятно, спасибо. пойду разбираться дальше
JhaoDa
@jhaoda
Dec 06 2016 19:56
@AnriKo так ты сначала читай, потому осознавай, а уж потом пиши. А не всё сразу.
Роман Сохарев
@greabock
Dec 06 2016 20:17

на реальном хостинге когда захожу в админку...
да я писал

а что ж оно на локалке не показало, если ты сам писал? Чет падазритильна --_--

Viktor Matushevskyi
@Viktorminator
Dec 06 2016 21:19
кто-то использует Elixir? есть ли в нём смысл, если я могу использовать просто gulp & live reload?
AlexKu777
@AlexKu777
Dec 06 2016 22:23
@Viktorminator я ипользую, так как ни чего другого не знаю. Но в файле еликсира почти тот же набор правил, что рекомендуют для "чистого" галпа, так что разницы наверное нет.
Viktor Matushevskyi
@Viktorminator
Dec 06 2016 22:25
@AlexKu777 ага, спасибо. просто прочёл, что Эликсир тормозит, смотрю в доки - тоже точно то же самое, что и в gulp-watch, смотрит те же php файлы, галп их тоже может смотреть. Короче настроил в OctoberCMS обычный livereload без gulp-watch - вроде работает как нужно...