These are chat archives for LaravelRUS/chat

14th
Jan 2017
projct1
@projct1
Jan 14 2017 08:07
когда 5.4 уже релизнится?)
wagwandude
@wagwandude
Jan 14 2017 08:37
Всем привет)
KarmaBot
@KarmaBot
Jan 14 2017 08:37
@wagwandude и тебе не хворать :)
wagwandude
@wagwandude
Jan 14 2017 08:37
Товарищи, подскажите одну простую вещь)
Изучаю Laravel. Написал раздел статей (публикация, редактирование, удаление). Пока без особых полей, чисто принимал текстовые данные, фильтровал и публиковал. Сегодня хочу сделать добавление изображений в статью. Нашел в документации способы принятия и загрузки файлов - очень удобная штука, но хочется улучшить добавление изображений.
А именно, установить данную прелесть - https://github.com/blueimp/jQuery-File-Upload
wagwandude
@wagwandude
Jan 14 2017 08:43
В форму добавил, но пока без принятия и публикации
я так понял, для нее нужно написать отдельный контроллер, который будет принимать значение и работать исключительно с этими изображениями
или как?)
projct1
@projct1
Jan 14 2017 08:47
@wagwandude конечно отдельный контроллер, либо в job вынеси загрузку фоток и вызывай в любом контроллере через $this->dispatch(new ImageUploader)
Igor Bashko
@bashko
Jan 14 2017 11:32
Когда я пробую запустить код в консоли или используя Xdebug, я получаю
ошибку - PHP Fatal error: Class 'App\Model\SyncStrategy' not found,
не один из указанные "use" не работает.
Я догадываюсь что в данной ситуаций они не видны, но как правильно решаются такие вопросы?
Igor Bashko
@bashko
Jan 14 2017 11:39
Или, вероятно корректней будет вопрос, как правильно дебажить artisan скрипты
в Phpstorm(Xdebug)?
app/Console/Commands/Inspire.php
Igor Bashko
@bashko
Jan 14 2017 13:05
projct1
@projct1
Jan 14 2017 13:36

обнаружил необычное поведение лары:
есть роут Route::get('order/{order}/sms/{sms?}', 'OrderController@sms')->name('order.sms');
есть метод-приёмщик:

public function sms(Order $order, Sms $sms = null)
{
    if (is_null($sms)) {
        $sms = $order->status->sms;
    }

    return $this->dispatch(new Replace($order, $sms->template));
}

при таком запросе почему-то в параметр $sms приходит не null, а пустой объект модели Sms (без атрибутов)

wagwandude
@wagwandude
Jan 14 2017 13:46
@rorc Спасибо
KarmaBot
@KarmaBot
Jan 14 2017 13:46
Спасибо (+1) для @rorc принято! Текущая карма +15.
wagwandude
@wagwandude
Jan 14 2017 13:47
Ребят. Подскажите, где создать функцию, чтобы её можно было вызывать отовсюду)) Сейчас у меня есть контроллер с функциями, которые возвращают данные в подставленные представления
но как вернуть во все views
projct1
@projct1
Jan 14 2017 13:52
@wagwandude не понял, ты хочешь чтобы во всех вьюшках были доступны всегда какие-то данные?
wagwandude
@wagwandude
Jan 14 2017 13:55
@rorc Да
projct1
@projct1
Jan 14 2017 13:55
@wagwandude доку читал по вьюшкам?
wagwandude
@wagwandude
Jan 14 2017 13:56
@rorc Данный раздел мельком прошел) спасибо еще раз
projct1
@projct1
Jan 14 2017 14:15
кстати а можно как-нибудь настроить биндинг моделей через гет параметры, например добавлять к роуту ?order=1 и в методе контроллера так же модель Order биндилась как-будто через /order/{order}
Anton Kartsev
@bigperson
Jan 14 2017 14:31
Всем привет. Подскажите пожалуйста по Event Broadcasting. Использую Laravel Echo. В доках сказанно что для него должен передаваться CSRF token. Но у меня spa на vuejs, аунтификация через laravel passport, каждый запрос авторизированного пользователя подписывается заголовками {'Accept': 'application/json', 'Authorization': 'Bearer ' + authUser.access_token}. В них нету CSRF. В результате я не могу подписаться на закрытые каналы. Как быть в такой ситуации?
KarmaBot
@KarmaBot
Jan 14 2017 14:31
@bigperson, здравствуй.
JhaoDa
@jhaoda
Jan 14 2017 14:40
@rorc а ты доку читал про биндинг?:)
projct1
@projct1
Jan 14 2017 14:45
@jhaoda ага, нет ничё такого, вот у меня урл какой http://bron/order/1/sms/status/2?sms=11
?sms=11 не видит ларка :(
JhaoDa
@jhaoda
Jan 14 2017 14:46
@rorc https://laravel.com/docs/5.3/routing#explicit-binding, Customizing The Resolution Logic
projct1
@projct1
Jan 14 2017 14:51
@jhaoda это да, у меня просто проблемка, в роуте нельзя же определять два параметра как необязательные, например
в идеале мне такой роут нужен /order/1/status/{status?}/sms/{sms?}
но если status не передать, то будет двойной слеш /order/1/status//sms/1 и всё разрушится
JhaoDa
@jhaoda
Jan 14 2017 14:52
@rorc а ты сделай их обязательными, а не пытайся сову на глобус натянуть
projct1
@projct1
Jan 14 2017 14:54
@jhaoda ну я просто передаю шаблон роута в Vuejs, и заведомо неизвестно какой статус будет лететь в урл или какая смска, то есть при инициализации мне надо просто получить шаблон роута, а далее уже в зависимости от логики подставлять в роут параметры :)
Anton Kartsev
@bigperson
Jan 14 2017 14:56
В общем нашел инфу что надо указать мидлварю при инициализации роутов, сделал указал так же как в router/api.php Broadcast::routes(['middleware' => ['auth:api']]);, в заголовках конечно же шлю токкен http://prntscr.com/dvjmah, но засада laravel echo server говорит мол: [5:54:01 PM] - de7Ml0eccsddTctEAAAF left channel: private-team.1 null Could not send authentication request.
Praddby
@Praddby
Jan 14 2017 15:09
Всем привет. Подскажите такой вопрос, как использовать js в шаблоне blade? Доступ к id елементов и установка им style напривер? В подключаемом js файле есть функция, которая ищет элемент и меняет иму style, в шаблон передаю параменты из контроллера, но js функция не работает (
KarmaBot
@KarmaBot
Jan 14 2017 15:09
@Praddby, здравствуй.
JhaoDa
@jhaoda
Jan 14 2017 15:12
@Praddby и при чем тут ларавел? Блэйд компиляется в html, и уже в нём начинает работать js.
Praddby
@Praddby
Jan 14 2017 15:13
@jhaoda т.е. сам блэйд не как не блочит js? Тут толькой мой касяк в работе с js?
JhaoDa
@jhaoda
Jan 14 2017 15:14
@Praddby ну откуда мне знать, что и как ты там написал? Может, у тебя и «блочит»
Praddby
@Praddby
Jan 14 2017 15:16
@jhaoda ок. Спасибо, одно сомнение развеилось.
@jhaoda спасибо
KarmaBot
@KarmaBot
Jan 14 2017 15:17
Спасибо (+1) для @jhaoda принято! Текущая карма +1406.
asvae
@asvae
Jan 14 2017 15:17

Тут услышал мнение, де не рестфул (не круто) под одну энтити несколько рутов городить.
Допустим, есть такой кейс:

  • GET api/admin/users - список пользователей админа
  • GET api/tuner/users - список пользователей настройщика
  • GET api/agency/users - список пользователей агентства

У рутов разное буквально все, права, трансформеры, валидация, выборка. Объединять представляется задачей идиотской.

Вопрос, может ли такой не рестфул (не крутой) подход быть чем-то чреват? И если да, то чем?

Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:18
рестфул не крутой такой уж
есть более крутые вещи =)
например апи, построенное на GraphQL, а не Rest CRUD (GET\POST\PUT\etc)
@asvae если проект только стартует - рекомендую на него посмотреть, вместо реста
JhaoDa
@jhaoda
Jan 14 2017 15:21
@asvae это какое-то странное мнение
@asvae так же у тебя очень странные роуты, которые нифига не REST. Так что твой вопрос не имеет смысла в данном контексте
asvae
@asvae
Jan 14 2017 15:22
@jhaoda я так тоже подумал. Но человек внятно пояснить не сумел, так что решил в чатике поинтесоваться.
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:22
@jhaoda почему нет?
asvae
@asvae
Jan 14 2017 15:23
@jhaoda у меня не рест, по ресту будет один рут, насколько я понимаю.
asvae
@asvae
Jan 14 2017 15:28

@SerafimArts у меня апи пока с большего велосипедный/минимальный и внутренний. Выборки фронтом не контролируются никак, например. Потому что на ресурс с пять рутов наберется от силы.

Этот GraphQL выглядит очень жирным решением.

Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:29
ну довольно изи оно ставится, но да, это слишком крутое решение для простых штук
asvae
@asvae
Jan 14 2017 15:31
@SerafimArts по чреватости трех рутов вместо одного ничего не скажешь? Там, потенциальные грабли? : 3
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:32
чревает конечно может быть
придётся на клиенте к разных моделей юзеров строить
если там всё разное вообще
asvae
@asvae
Jan 14 2017 15:34
Ну их в любом случае придется разные строить.
Или лепить какие-то люто-вумные компоненты, которые будут фронто-круд собирать в зависимости от прилетевших полей.
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:35
@asvae с доктриной знаком?
там есть дискриминатор мапы
asvae
@asvae
Jan 14 2017 15:35
@SerafimArts подсажен.
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:35
эти штуки позволяют делать разные модели вообще, используя общий полиморфичный базис
так что на счёт "придётся" - всё зависит от реализации
у юзеров в любом случае есть id, логин, тип, ну и что-то вроде аватарок
asvae
@asvae
Jan 14 2017 15:36
Не, тут кейс другой. Пользователи все одни и те же.
Просто релейшоны.
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:36
ну если отдача разная и мапперы разные
asvae
@asvae
Jan 14 2017 15:37
Пользователь агентства отличается от обычного пользователя только тем, что он принадлежит агентству. Т.е. агентство его может отредактировать/удалить.
Mezhevikin Alex
@mezhevikin
Jan 14 2017 15:37
Привет. такая проблема. перенес апп с одного сервера на другой. изначально была mysql. На новом maridb. При выполнении консольной операции выплюнуло исключение: [Illuminate\Database\QueryException]
Empty row packet body (SQL: select * from members where group_id = 16569135)
KarmaBot
@KarmaBot
Jan 14 2017 15:37
@mezhevikin, здравствуй.
asvae
@asvae
Jan 14 2017 15:37
Но пользователь может спокойно принадлежать и агентству, и настройщику, например. Так что явно типом ничем не поможешь.
Mezhevikin Alex
@mezhevikin
Jan 14 2017 15:38
при этом через phpmyadmin эта строка работает
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:38
@mezhevikin разлочь таблицу руками
у тебя транзакция где-то провисла мб
и замени майисам на иннодб
там лочатся записи, а не все таблицы
Mezhevikin Alex
@mezhevikin
Jan 14 2017 15:39
@SerafimArts и так иннодб
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:39
ну короче это трабла с локами вроде как
asvae
@asvae
Jan 14 2017 15:40
@SerafimArts спасибо. Я поспокойнел.
@SerafimArts спасибо
KarmaBot
@KarmaBot
Jan 14 2017 15:41
Спасибо (+1) для @SerafimArts принято! Текущая карма +663.
Kirill Nesmeyanov
@SerafimArts
Jan 14 2017 15:41
@asvae было бы из-за чего париться =)
в результате, как ни страешься - всё равно появятся манагеры
делай блабла
и блабла
нет, не надо
переделывай
и всё равно всё потом в говно сваливается
и жизнь-тлен
...
xD
JhaoDa
@jhaoda
Jan 14 2017 15:43
И чат не тот
Mezhevikin Alex
@mezhevikin
Jan 14 2017 15:43
@SerafimArts спасибо за подсказку. сделал UNLOCK TABLES . сейчас запустил операцию(она длинная), надеюсь что поможет
KarmaBot
@KarmaBot
Jan 14 2017 15:43
Спасибо (+1) для @SerafimArts принято! Текущая карма +664.
wagwandude
@wagwandude
Jan 14 2017 20:38
Ребят. Насколько важно хранение выборки из БД в модели? Ее же можно расположить и в контроллере. Например, простая выбора - Page::find($id);
зачем для ней создавать модель
неё*
Alexander
@Dualse
Jan 14 2017 20:45
@wagwandude А Page - это что?
Andrei Sosnov
@atehnix
Jan 14 2017 21:53

@Dualse я так понимаю, человек хочет вместо Page::find($id); юзать просто квери билдер.

@wagwandude ORM предоставляет широчайшие возможности (все есть в доке), но если тебе оно не надо, то никто не заставляет).
Посему, на вопрос "насколько важно" однозначного ответа нет. Все зависит от твоих потребностей. ;)