These are chat archives for LaravelRUS/chat

3rd
Nov 2016
John
@jdk2se
Nov 03 2016 01:28
Доброе утро.
Подскажите, когда я выполняю ajax запрос всё норм. Но когда в success пытаюсь выполнить ещё один (в зависимости от ответа на первый запрос) получаю ошибку 500.
хотя 2й запрос по структуре идентичен
John
@jdk2se
Nov 03 2016 02:01
Брал token динамически, была ошибка. До всех запросов пишу в переменную - всё норм.
Anton Vorontsov
@symbios-zi
Nov 03 2016 06:02
@jdk2se логи смотрел?
Anton Kazakov
@venila
Nov 03 2016 06:11
Всем привет! Как передавать одну переменную в главный blade? Делал через провайдер, но выдает ошибку нон-обжект. При том, если создать и просто передать эту переменную, то все работает.Но как только пытаюсь через провайдера сделать сложный запрос в бд, то именно в провайдерах это не работает. Я вот думаю , если сделать в модели static функсцию и переменную, а потом вызвать их в провайдере, это будет работать?
KarmaBot
@KarmaBot
Nov 03 2016 06:11
Приветствую тебя, @venila!
Denis Burkin
@denisburkin
Nov 03 2016 06:13
Всем привет
KarmaBot
@KarmaBot
Nov 03 2016 06:13
@denisburkin, здравствуй.
Denis Burkin
@denisburkin
Nov 03 2016 06:13
https://laracasts.com а есть переводы не текстовые ?
Alexander
@Dualse
Nov 03 2016 06:14
@denisburkin Нету
Denis Burkin
@denisburkin
Nov 03 2016 06:14
(
жаль, а что можете на русском языке из видео посоветовать ?
Anton Kazakov
@venila
Nov 03 2016 06:16
@denisburkin https://www.youtube.com/watch?v=uJPOkWFLPs0&list=PLoonZ8wII66h7pF6CFPzK3pVhTWo3DL9G
Alexander
@Dualse
Nov 03 2016 06:16
@venila Заверни. Это разве переводы?
Anton Kazakov
@venila
Nov 03 2016 06:17
Для начала информации хватит, дальше уже как будут вопросы, ты поймешь что нужно гуглить.
@Dualse как?)
Alexander
@Dualse
Nov 03 2016 06:17
@venila В обратные апострофы ссылку
Anton Kazakov
@venila
Nov 03 2016 06:18
@Dualse так?
Alexander
@Dualse
Nov 03 2016 06:18
@venila +
Anton Kazakov
@venila
Nov 03 2016 06:20
я там вопрос задал наверху, что-то на него никто не ответил... Обычно тут на все вопросы пытаются помочь ответить
Alexander
@Dualse
Nov 03 2016 06:21
@venila >Делал через провайдер, но выдает ошибку нон-обжект.
Использовал view composer?
Anton Kazakov
@venila
Nov 03 2016 06:22
View::share('key', 'value');
Anton Kazakov
@venila
Nov 03 2016 07:02
Кто-то может дать хороший пример сайта на ларавел на github?
Soprun Vladislav
@vlsoprun
Nov 03 2016 07:53
Здорова мужики!
Anton Kartsev
@bigperson
Nov 03 2016 08:20
Еще раз спасибо всем, кто давал советы по уменьшению количества запросов. Удалось добиться 9 запросов.
Anton Vorontsov
@symbios-zi
Nov 03 2016 08:43
@bigperson ыыы
@bigperson как сделал?
Anton Kartsev
@bigperson
Nov 03 2016 08:58
@symbios-zi жадную загрузку вложенных связей через точку добавил
icanall10
@icanall10
Nov 03 2016 09:02
здравствуйте
подскажите, как вывести всех пользователей, не имеющих админской роли?
делаю вот так:
$users = User::orderBy('name', 'asc')
->whereHas('roles', function($q){
$q->where('name', '!=', 'admin');
})
->get();
не получается
KarmaBot
@KarmaBot
Nov 03 2016 09:02
Будь как дома, @icanall10, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
am0nshi
@am0nshi
Nov 03 2016 09:03
всем лучей бобра :) кто как генерит документацию по своим ларко-проектам? :)
User::where('roles','!=','admin')->all();
KarmaBot
@KarmaBot
Nov 03 2016 09:03
@am0nshi, привет =)
am0nshi
@am0nshi
Nov 03 2016 09:03
@icanall10 если роли это соседняя таблица, то roles.name и добавить ее в with()
icanall10
@icanall10
Nov 03 2016 09:04
@am0nshi Call to undefined method Illuminate\Database\Query\Builder::all()
@am0nshi данные по ролям находятся в отдельной таблице role_user
am0nshi
@am0nshi
Nov 03 2016 09:05
@icanall10 тогда кури доку в сторону with и hasNot
icanall10
@icanall10
Nov 03 2016 09:05
@am0nshi спс. пошел курить hasNot
KarmaBot
@KarmaBot
Nov 03 2016 09:05
Спасибо (+1) для @am0nshi принято! Текущая карма +29.
icanall10
@icanall10
Nov 03 2016 09:07
вот так оказывается надо
$users = User::orderBy('name', 'asc')
->whereHas('roles', function($q){
$q->where('name', '=', 'admin');
}, '<', 1)
->get();
Sergiy
@sergiy-lytvyn
Nov 03 2016 09:08
Кто работал с Lumen 5.2 -5.3. ? Есть вопрос по валидации.
Alexander
@Dualse
Nov 03 2016 09:35
@icanall10 оформи код
KarmaBot
@KarmaBot
Nov 03 2016 09:35
@icanall10, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой «Ё»).
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка M↓ внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
Vladimir Yuldashev
@vyuldashev
Nov 03 2016 09:36
@sergiy-lytvyn может сразу вопрос?
Alexander
@Dualse
Nov 03 2016 09:36

@am0nshi

всем лучей бобра :) кто как генерит документацию по своим ларко-проектам? :)
User::where('roles','!=','admin')->all();

all - это ВСЕ данные. Если у тебя условие, то это уже только часть данных.

Sergiy
@sergiy-lytvyn
Nov 03 2016 09:44
как вывести errors во view. Использую $this->validate($request, ['phone' => 'required']). Сразу попадаю на пустую страницу с ошибками валидации в виде json массива.
Lumen does not support sessions out of the box, so the $errors view variable that is available in every view in Laravel is not available in Lumen.
https://lumen.laravel.com/docs/5.2/validation
Andrey Degtyaruk
@hlogeon
Nov 03 2016 09:47
$errors = $this->validate($request, ['phone' => 'required'])
И передавай $errors во View. В чем проблема-то?
am0nshi
@am0nshi
Nov 03 2016 09:52
@Dualse возможно, я ларку месяц не открывал. я не думаю что это принципиально в контексте вопроса :)
Sergiy
@sergiy-lytvyn
Nov 03 2016 09:53
после $this->validate($request, $this->rules()) нечего уже не выполняется. Получаю сразу пустую страницу в виде json строки
 public function store(Request $request)
 {
        $err = $this->validate($request, $this->rules());
}
111111.png
Алексей Печёнов
@Alexpechonov
Nov 03 2016 09:54
Добрый день, ребята!
использую метод DELETE. в конструкции try catch отлавливаю ошибку ModelNotFoundException. пытаюсь внутри сделать редирект на страницу с которой был отправлен запрос, но загружается страница с урлом формы и всё. редирект не работает. Всё отлично работает только при успешном удалении. код:
 try {
            $reference = Reference::findOrFail($id);

            $reference->delete();
        } catch (ModelNotFoundException $e) {
            return Redirect::action('HomeController@index'); // redirect()->back()...
        }

        return redirect()->back()->with(['message' => 'Reference successfully deleted']);
am0nshi
@am0nshi
Nov 03 2016 09:58
на страницу что-то уже успелось вывести к моменту показа формы?
Andrey Degtyaruk
@hlogeon
Nov 03 2016 09:59
@sergiy-lytvyn
Should validation fail, the $this->validate helper will throw Illuminate\Validation\ValidationException with embedded JSON response that includes all relevant error messages.
Алексей Печёнов
@Alexpechonov
Nov 03 2016 10:00
@am0nshi в дебаггере status_code = 404. и подгружается страница ошибки
Andrey Degtyaruk
@hlogeon
Nov 03 2016 10:00
@sergiy-lytvyn
Лови Exception
am0nshi
@am0nshi
Nov 03 2016 10:00
@Alexpechonov там точно ModelNotFoundException? поймай просто эксепшн и продебаж его
Алексей Печёнов
@Alexpechonov
Nov 03 2016 10:00
@am0nshi может нужно было отловить http exception?
Andrey Degtyaruk
@hlogeon
Nov 03 2016 10:01

@sergiy-lytvyn
И еще тебе на заметку

If you are not building a stateless API that solely sends JSON responses, you should use the full Laravel framework.

am0nshi
@am0nshi
Nov 03 2016 10:01
кстати вопрос про апи, таки лучше фул ларавель или люмен?
Sergiy
@sergiy-lytvyn
Nov 03 2016 10:04
@hlogeon , да я как раз и отказался от Laravel в пользу Lumen. Ножно мне небольшой сервис для добавления и чтения данных, не больше.
Andrey Degtyaruk
@hlogeon
Nov 03 2016 10:04

@sergiy-lytvyn

Ну тогда отлавливай Illuminate\Validation\ValidationException

Алексей Печёнов
@Alexpechonov
Nov 03 2016 10:05
@am0nshi отлавливаю в catch просто Exception, но бросает все равно 404 страницу
Andrey Degtyaruk
@hlogeon
Nov 03 2016 10:06

@am0nshi

кстати вопрос про апи, таки лучше фул ларавель или люмен?

Зависит от потребностей твоих. Если у тебя не stateless API планируется, то точно НЕ Lumen

am0nshi
@am0nshi
Nov 03 2016 10:07
@hlogeon потребность - апи гейтвей для десятка продуктов компании, это пока все что я знаю :) предыдущий был написан на extJS + фул ларка
Evgeniy Nakoneschniy
@Enakoneschniy
Nov 03 2016 10:08
Хей народ... есть знатоки Postgres?
Andrey Degtyaruk
@hlogeon
Nov 03 2016 10:08

@am0nshi

Lumen 5.2 represents a shift on slimming Lumen to focus solely on serving stateless, JSON APIs. As such, sessions and views are no longer included with the framework. If you need access to these features, you should use the full Laravel framework.

@Enakoneschniy
Ты бы лучше вопрос задал сразу
Evgeniy Nakoneschniy
@Enakoneschniy
Nov 03 2016 10:09
Поставил ubuntu server и postgres. создал нового пользователя. пытаюсь войти от имени этого пользователя, а он просит у меня пароль от postgres. Пароль "postgres" не подходит... не знаю что делать. на локалке у меня этот пароль работает
може кто сталкивался с такой проблемой
Я уже все перепробовал
ни в какую не хочет
am0nshi
@am0nshi
Nov 03 2016 10:10
@hlogeon спасибо, будет ли оно stateless пока не могу сказать
@Enakoneschniy такие вопросы в оффтоп
projct1
@projct1
Nov 03 2016 10:30
кто-нибудь в курсе, тут опечатка в доках? https://laravel.com/docs/5.3/views#view-composers
в первом примере написано class ComposerServiceProvider extends ServiceProvider а должно быть class AppServiceProvider extends ServiceProvider ?
Alexander
@Dualse
Nov 03 2016 10:34
@rorc Нет. С чего ты взял, что должно быть AppServiceProvider?
projct1
@projct1
Nov 03 2016 10:37
@Dualse чтобы регать композеры надо создать ComposerServiceProvider сначала?
Alexander
@Dualse
Nov 03 2016 10:38
@rorc Нет.
Регистрировать композеры можно внутри сервис-провайдера
projct1
@projct1
Nov 03 2016 10:39
@Dualse зачем ComposerServiceProvider нужен?
sokolovskyi-andryi
@sokolovskyi-andryi
Nov 03 2016 10:39
Добрый день.
KarmaBot
@KarmaBot
Nov 03 2016 10:39
@sokolovskyi-andryi даров!
Alexander
@Dualse
Nov 03 2016 10:40
@rorc Чтобы удобнее было
sokolovskyi-andryi
@sokolovskyi-andryi
Nov 03 2016 10:41
Устанавливаю HOMESTEAD. Можете подсказать каким образом создать или отредактировать файл Homestead.yaml ?
Alexander
@Dualse
Nov 03 2016 10:42
@rorc Так же ты можешь обойтись и одним контроллером. Но ведь ты под каждую "задачу" создаешь свой контроллер.
П.С. "задача" взяла образно, не знаю, как более корректно сказать
projct1
@projct1
Nov 03 2016 10:49
можно как-нибудь узнать во вьюшке родительскую вьюшку? кроме как через $this->lastCompiled
Ваня Devium
@webdevium
Nov 03 2016 11:02
Мужики, mailgun у вас нормально работает сегодня?
am0nshi
@am0nshi
Nov 03 2016 11:08
мужики,а в чем прикол? создал проект через "composer create-project --prefer-dist laravel/laravel name", а он какой-то прокрамцаный получился. не вижу например папки моделей вообще
Kirill Nesmeyanov
@SerafimArts
Nov 03 2016 11:10
@am0nshi папки моделей?
в ларке нет такой папки, насколько я помню, начиная с версии 5.0
projct1
@projct1
Nov 03 2016 11:11
подскажите как сделать чтобы скрытый биндлинг модели работал и по id и по slug ?
так как в админке мне по айди надо биндить, а на самом сайте через slug чтобы карточка товара открывалась
если в модели задам protected $primaryKey = 'slug'; то админка перестаёт работать
am0nshi
@am0nshi
Nov 03 2016 11:11
@SerafimArts утверждать не буду, но в 5.1 кажется была, хотя я мог и руками накрутить её. где в таком случае хранятся элоквентовские модели по идеологии?
Kirill Nesmeyanov
@SerafimArts
Nov 03 2016 11:11
@am0nshi ноуп
@am0nshi где угодно
Alexander
@Dualse
Nov 03 2016 11:14
@am0nshi В 5.3 многие "приколюхи" по дефолту убрали. Только при использование появляются.
projct1
@projct1
Nov 03 2016 11:16
разобрался, просто метод надо добавить, обожаю лару)
    public function getRouteKeyName()
    {
        return 'slug';
    }
Dmitry
@teplenin
Nov 03 2016 11:20
Добрый день. Подскажите, пожалуйста, по очередям. Добавляю задачу в очередь командой Queue::push, она начинает выполняться, но страница не загружается, пока задачи в очереди не выполнятся, но если ее перезагрузить, то задание не прерывается и выполняется дальше. Как сделать чтобы задача ушла в фоновое выполнение и страница загрузилась?
KarmaBot
@KarmaBot
Nov 03 2016 11:20
Привет, @teplenin! Проходи, присаживайся. В ногах правды нет :)
Dmitry
@teplenin
Nov 03 2016 11:24
драйвер стоит - database
Дмитрий Мязин
@d4c0
Nov 03 2016 11:24
Есть основное меню, оно показывается на всех стрницах, оно в лайауте. А есть ещё подменю, которое показывается только в определённых нескольких вьюхах. Дублировать html подменюшки в этих вьюхах как то не очень, какие есть варианты?
Alexander
@Dualse
Nov 03 2016 11:27
@d4c0 @include?
Дмитрий Мязин
@d4c0
Nov 03 2016 11:29
@Dualse Спасибо! А то мне уже пришла в голову "гениальная" идея, создать вьюху с этой сабменюхой, в ней описать секцию "@section('submenu')" предварительно расширив вьюху, в которой я бы делала @yield('submenu'), предварительно расширив лайоут :D
KarmaBot
@KarmaBot
Nov 03 2016 11:29
Спасибо (+1) для @Dualse принято! Текущая карма +101.
Alexander
@Dualse
Nov 03 2016 11:30
@d4c0 Я воздержусь от комментария)
Kirill Nesmeyanov
@SerafimArts
Nov 03 2016 11:31
@teplenin хоть драйвер и стоит - проверь кеш, конфиги имеют свойство кешироваться
Dmitry
@teplenin
Nov 03 2016 11:32
@SerafimArts как его очистить можно?
Alexander
@Dualse
Nov 03 2016 11:35
@teplenin config:clear?
Dmitry
@teplenin
Nov 03 2016 11:37
Почистил, всё так же
В БД в таблице jobs ничего не создается
sokolovskyi-andryi
@sokolovskyi-andryi
Nov 03 2016 11:44
Подскажите каким образом создать или отредактировать файл Homestead.yaml ? У меня его нет вообще :(
NoViKoFF
@AndrewNovikof
Nov 03 2016 11:47

@teplenin ты уверен что драйвер database?
Строчка по дэфолту в queue.php

'default' => env('QUEUE_DRIVER', 'sync'),

Сначала смотрит в файл .env

Dmitry
@teplenin
Nov 03 2016 11:48
blob
@AndrewNovikof стоит database
NoViKoFF
@AndrewNovikof
Nov 03 2016 11:49
@teplenin а в файле .env??
@teplenin строчка читается как Переменная файла ЕНВ QUEUE_DRIVER, если не установлена, то sync
Dmitry
@teplenin
Nov 03 2016 11:52
@AndrewNovikof Спасибо! Права на .env стояли неправильные и он не перезаписывался
KarmaBot
@KarmaBot
Nov 03 2016 11:52
Спасибо (+1) для @AndrewNovikof принято! Текущая карма +35.
Alexander
@Dualse
Nov 03 2016 11:58
@teplenin То есть не перезаписывался? Ты не видел что он не сохраняется?
Dmitry
@teplenin
Nov 03 2016 11:59
@Dualse он был создан под рутом, а использую другого FTP пользователя. FTPSync не сохранял этот файл
Dmitry
@teplenin
Nov 03 2016 12:13

Теперь другая проблема) Задачи в очереди висят, но не выполняются.
Команда

php artisan queue:listen database

запущена

Что еще не учел?
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 12:47
Добрый день. Кто нибудь знает как в Query Builder условие ->having() включать в запрос по условию? Например если то то, то в запросе делать фильтр с ->having() иначе ->having() не включать в запрос
KarmaBot
@KarmaBot
Nov 03 2016 12:47
Прувет, @djtiomc_twitter!
Ваня Devium
@webdevium
Nov 03 2016 12:48
@djtiomc_twitter where(function($q) {}) используй
и будет тебе счастье
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 12:48
пробовал не работает
Ваня Devium
@webdevium
Nov 03 2016 12:48
@djtiomc_twitter криво пробовал
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 12:49
->where(function ($query) {
                    if (Input::get('count') != '!') {
                        $query->having(DB::raw('count'), Input::get('count'), 0);
                    }
                })
Ваня Devium
@webdevium
Nov 03 2016 12:49
о ужас, отформатируй
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 12:50
сейчас попробую разобратся как это делается
Ваня Devium
@webdevium
Nov 03 2016 12:51
@djtiomc_twitter
$query->having(DB::raw('count'), Input::get('count'), 0);
вот это вот прочти сам
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 12:56
Input::get('count') должен подставить в запрос знак > < =
am0nshi
@am0nshi
Nov 03 2016 12:56
господа, а есть какие-то готовые решения из коробки чтобы ларка выворачивала наизнанку данные для js, например роутинг или csrf токен?
Ваня Devium
@webdevium
Nov 03 2016 12:57
@djtiomc_twitter ну как то не очень ты придумал вариант. Ну да ладно, и какой на выхлопе запрос получается?
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 13:02
При таком коде having вообще не попадает в запрос. Где where а в замыкании having
Там идет выборка товаров и поле count формируется вложанным запросом SUM и по нему нужно сделать фильтр
Ваня Devium
@webdevium
Nov 03 2016 13:04
->where(function ($query) {
    if (in_array(request()->input('count'), [ '<', '>' ])) {
        $query->having('count', request()->input('count'), 0);
    }
})
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 13:04
Документация гласит что SUM() count() нужно фильтр делать через having(). И вот я хочу сделать что когда выбрано все товары то запрос делать без having() а когда выбрано больше 0 или равно 0 то включать having с условием
Ваня Devium
@webdevium
Nov 03 2016 13:05
у тебя лара версии какой?
Германюк Тарас
@djtiomc_twitter
Nov 03 2016 13:06
5
а какая точно не знаю. нужно уточнять
Ваня Devium
@webdevium
Nov 03 2016 13:06
короче, having тут не при чем
Нужно весь мега запрос смотреть
Anton Kartsev
@bigperson
Nov 03 2016 13:19
@teplenin ShouldQueue отнаследован?
Dmitry
@teplenin
Nov 03 2016 13:48
@bigperson разобрался, почему не выполнялись. Имя очереди указывал project1, она не выполнялась. Теперь не могу понять как сделать чтобы все очереди выполнялись? Их может быть много (project1, project2, project..n), на каждую вешать слушатель?
Хотя, в принципе, мне и не нужно это, в одну очередь буду кидать. @bigperson спасибо за откик
Anton Kartsev
@bigperson
Nov 03 2016 14:07
Yaroslav
@uRusure
Nov 03 2016 15:22
есть комната жса?
Роман Сохарев
@greabock
Nov 03 2016 15:34
am0nshi
@am0nshi
Nov 03 2016 15:40
господа, ни у кого не получалось генерить доку с учетом аргументов FormRequest и вложенных в него валидаций, чтобы разложить его на реквест при генерации документации?
Xvlad (Vladyslav Volynets)
@xvladxtremal
Nov 03 2016 15:44
Посоветует кто shared хост, в европе с поддержкой лары и ssh с composer ? Желательно недорогой. Буду благодарен.
projct1
@projct1
Nov 03 2016 15:55
как-нибудь можно закастить модель через кастомную функцию? например я модель картинки, при выводе как строку, хочу через Intervention Image пропустить
Alexander
@Dualse
Nov 03 2016 15:58
@rorc Accessor?
projct1
@projct1
Nov 03 2016 16:00
@Dualse ну по идеи да, а вместо сериализации через свою функцию пропустить нельзя никак?
Alexander
@Dualse
Nov 03 2016 16:01
@rorc Можешь презентеры использовать. Можешь свое кастомное поле со своими правилами создать.
projct1
@projct1
Nov 03 2016 16:02
@Dualse презентеры?
Alexander
@Dualse
Nov 03 2016 16:04
@rorc https://laravel-news.ru/blog/tutorials/presenters-in-laravel Хотя возможно я ошибаюсь в уместности их использования
projct1
@projct1
Nov 03 2016 16:05
@Dualse новый шаблон проектирования типа?
Alexander
@Dualse
Nov 03 2016 16:06
@rorc Не знаю, новый или нет. Я в этом не разбираюсь.
projct1
@projct1
Nov 03 2016 16:06
@jhaoda спс, то что нужно
KarmaBot
@KarmaBot
Nov 03 2016 16:06
Спасибо (+1) для @jhaoda принято! Текущая карма +1282.
projct1
@projct1
Nov 03 2016 16:06
@Dualse спс, интересная фигня, прочту
KarmaBot
@KarmaBot
Nov 03 2016 16:06
Спасибо (+1) для @Dualse принято! Текущая карма +102.
Kirill Nesmeyanov
@SerafimArts
Nov 03 2016 16:57
@LightAir баярлалаа+
KarmaBot
@KarmaBot
Nov 03 2016 16:57
Спасибо (+1) для @LightAir принято! Текущая карма +33.
Dave
@aios
Nov 03 2016 17:42
Самый тупой вопрос.
Как проапдейтить модель в обсервере во время saved
без max callstack reached
JhaoDa
@jhaoda
Nov 03 2016 18:09
@aios делать это в saving?
Dave
@aios
Nov 03 2016 18:14
@jhaoda знаю знаю.
JhaoDa
@jhaoda
Nov 03 2016 18:18
@aios но...? Как в меме, «Хорошая идея. Проверять я её, конечно же, не буду»?:)
Dave
@aios
Nov 03 2016 18:18
@jhaoda да я уже решил) спасибо
KarmaBot
@KarmaBot
Nov 03 2016 18:19
Спасибо (+1) для @jhaoda принято! Текущая карма +1283.
Dave
@aios
Nov 03 2016 18:31
@jhaoda хотя нет - бестпрактис я бы послушал.
Нужно обновить модель в ее же обсервере.
queue? или что для этого делается?
Mikhail Sychev
@snutworks
Nov 03 2016 18:45
Всем привет! У меня есть таблица юзеров, собрал из коробки и немного расширил, там по умолчанию поле email unique я его сделал nullable, change тоже дернул, в итоге на бою куча ошибок что поле email cannot be null, мне нужно чтобы пользователь создавался без мыла (при авторизации через соцсеть его просто может не быть), сталкивался кто с таким? Что делать?
KarmaBot
@KarmaBot
Nov 03 2016 18:45
@snutworks, здравствуй.
JhaoDa
@jhaoda
Nov 03 2016 18:53
@aios ну вот и обновляй в saving. Либо в saved пред сохранением сбрасывай у модели слушателей через flushEventListeners или одного конкретного слушателя, но это попахивает
@snutworks ну так это у тебя валидатор ругается, поди
Евгений Берестовой
@berestov
Nov 03 2016 19:30

Привет ребята...
Подскажите по возможности по расширению класса Request в Lara 5.3. В 4 достаточное описание, а в 5.3 толком не нашел.
Сейчас - создал новый класс Реквеста, унаследовал базовый, переписал основной класс в /bootstrap/app.php

Методы нового класса вызываются нормально, но вот объекты унаследованного Реквеста пустые...

<?php namespace App\Extensions;

use \Illuminate\Http\Request as RealRequest;

class Request extends RealRequest
{

    public function check ()
    {
        $user = $this->user(); // Должна вернуть модель User
        $data = print_r($user, true);

        echo $user; // Тут пусто

        header('Content-type: text/plain');
        echo $data;
        exit();
    }

}

?>

KarmaBot
@KarmaBot
Nov 03 2016 19:30
Будь как дома, @berestov, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Dave
@aios
Nov 03 2016 19:31
@berestov почитай документацию
только не про лару
а про наследование в php
Евгений Берестовой
@berestov
Nov 03 2016 19:34
@aios Спасибо, еще конечно перечитаю... Но я отталкивался от описанной в Lara
KarmaBot
@KarmaBot
Nov 03 2016 19:34
Спасибо (+1) для @aios принято! Текущая карма +255.
seoperin
@seoperin
Nov 03 2016 19:35
Привет. Подскажите, есть Post у которого title_ru, title_en, text_ru, text_en и есть категории с такими же полями. Задача сделать поиск записей, но чтобы поиск шел еще и по категориям. То есть строка поиска ищется в title ru и en, в text ru en и в тайтлах категории... Подскажите, каким поиском это лучше сделать? И более сложный вариант, искать только в полях тех локалей которая сейчас выбрана
KarmaBot
@KarmaBot
Nov 03 2016 19:35
Будь как дома, @seoperin, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
JhaoDa
@jhaoda
Nov 03 2016 19:35
@berestov в контейнере алиас поменял?
@aios нет, наследование ни при чем
Евгений Берестовой
@berestov
Nov 03 2016 19:36
@jhaoda Да, если меняю в контейнере, то и там становится NULL
@jhaoda F cnjg
Dave
@aios
Nov 03 2016 19:36
@jhaoda он во первых не от того наследует во вторых тупо не понимает ка работают реквесты.
Евгений Берестовой
@berestov
Nov 03 2016 19:36
@jhaoda А стоп... сек
JhaoDa
@jhaoda
Nov 03 2016 19:36
@berestov ты код покажи, как в /bootstrap/app.php поменял и как алиас поменял
@aios он от того наследуется
Евгений Берестовой
@berestov
Nov 03 2016 19:38
@jhaoda Хотя нет...
Код поменял в /public/index.php

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    //$request = Illuminate\Http\Request::capture()
    $request = App\Extensions\Request::capture()
);

$response->send();

?>
seoperin
@seoperin
Nov 03 2016 19:38
По поиску подскажет кто-нибудь?
JhaoDa
@jhaoda
Nov 03 2016 19:38
@berestov код оформи
KarmaBot
@KarmaBot
Nov 03 2016 19:38
@berestov, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой «Ё»).
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка M↓ внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
JhaoDa
@jhaoda
Nov 03 2016 19:40
@berestov так, норм. Смена алиаса?
Dave
@aios
Nov 03 2016 19:41
@jhaoda такого говна... я еще не делал.
str_replace('App\Models\', '', get_class($this))::flushEventListeners();
JhaoDa
@jhaoda
Nov 03 2016 19:42
@berestov такие простыни сюда не надо кидать, это раз. Алис поменял не там, это два
Dave
@aios
Nov 03 2016 19:42
http://naklejki-na-avto.ru/images/product/l/2347607fb.png
Евгений Берестовой
@berestov
Nov 03 2016 19:42
@jhaoda

'aliases' => [
        //'Request' => Illuminate\Support\Facades\Request::class,
        'Request' => App\Extensions\Request::class,
    ]
@berestov ещё раз — алиас поменял НЕ ТАМ!
Евгений Берестовой
@berestov
Nov 03 2016 19:43
@jhaoda Да сорь только привыкаю
JhaoDa
@jhaoda
Nov 03 2016 19:43
@berestov почитай доку и разберись с алиасами контейнера и с алиасами в конфиге, которые фасады
Mikhail Sychev
@snutworks
Nov 03 2016 19:44
@jhaoda да, в валидаторе честно сказано required|unique:users туплю под вечер, снес, должно заработать
Евгений Берестовой
@berestov
Nov 03 2016 19:44
@jhaoda Спасибо! Чуть более стало понятно куда копать
KarmaBot
@KarmaBot
Nov 03 2016 19:44
Спасибо (+1) для @jhaoda принято! Текущая карма +1284.
JhaoDa
@jhaoda
Nov 03 2016 19:44
@berestov только учти, что у тебя теперь и с форм реквестам проблемы, и с консолью, и с тестами :)
Евгений Берестовой
@berestov
Nov 03 2016 19:45
@jhaoda О_О
JhaoDa
@jhaoda
Nov 03 2016 19:45
Потому что реквест ты поменял, но все эти ребята об этом всё равно не знают и продолжают юзать старый реквест
Евгений Берестовой
@berestov
Nov 03 2016 19:46
@jhaoda и что там придется редактировать базовый код? Немного странно конечно...
JhaoDa
@jhaoda
Nov 03 2016 19:47
@berestov я всё это прошел. это скользкий путь :)
Евгений Берестовой
@berestov
Nov 03 2016 19:47
@jhaoda Спасибо за совет... Может поискать какое-то более простое решение мне...?
KarmaBot
@KarmaBot
Nov 03 2016 19:47
Спасибо (+1) для @jhaoda принято! Текущая карма +1285.
JhaoDa
@jhaoda
Nov 03 2016 19:47
@berestov https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php#L20
Как видишь, в консоли реквест создается жестко, значит, надо преопределять этот класс и подсовывать его консольному ядру
@berestov http://stackoverflow.com/a/39735064/3810041 вот про форм реквест и про тесты
Только я не уверен, что часть с формреквестом правильная, у меня почему-то не пашет, хотя я на 5.2 это делал, может в 5.3 поменяли что-то
Евгений Берестовой
@berestov
Nov 03 2016 19:50
@jhaoda Ок, пошел покурить темы... Отличные идеи вы мне подсказали... Я бы много времени на это потратил!
seoperin
@seoperin
Nov 03 2016 19:54
Подскажите, есть Post у которого title_ru, title_en, text_ru, text_en и есть категории с такими же полями. Задача сделать поиск записей, но чтобы поиск шел еще и по категориям. То есть строка поиска ищется в title ru и en, в text ru en и в тайтлах категории... Подскажите, каким поиском это лучше сделать? И более сложный вариант, искать только в полях тех локалей которая сейчас выбрана
JhaoDa
@jhaoda
Nov 03 2016 19:56
@seoperin ещё раз повтори :)
@berestov ты подумай над тем. что бы это как-то иначе сделать. Если у тебя там всего один метод, то слишком много писанины и потенциальных проблем
seoperin
@seoperin
Nov 03 2016 19:58
Есть что-то для поиска со связями? В скауте алголии не нашел такого
Евгений Берестовой
@berestov
Nov 03 2016 20:08
@jhaoda у меня вот какая идея... у пользователей есть внутренние PERMISSION в приложении, которые записаны по bitmask в Model/User, на этапе запроса после авторизации у меня есть Model/User и Request, в котором я легко могу подгружать права в сессию и проверять пользователя. Таблица прав пользователей хранится в Model/Permission в виде справочника id|mask... Идея залезть в Гварда мне не очень понравилась, так как слишком много контроллеров и есть условия.
JhaoDa
@jhaoda
Nov 03 2016 20:08
@berestov ты про политики авторизации в ларавел читал?
Евгений Берестовой
@berestov
Nov 03 2016 20:09
@jhaoda вроде да... ) может что пропустил
JhaoDa
@jhaoda
Nov 03 2016 20:09
@berestov не задача реквеста чекать права, для этого есть политики
Евгений Берестовой
@berestov
Nov 03 2016 20:11
@jhaoda Можешь кинуть линк на что обратить внимание? Может реально что пропустил. Только недавно копаю Лару.
JhaoDa
@jhaoda
Nov 03 2016 20:12
@berestov тогда ты лучше всю доку прочитай, хотя бы бегло, что бы знать, что в ней вообще есть
Евгений Берестовой
@berestov
Nov 03 2016 20:13
@jhaoda Может прав я так то по заголовка пробежался
Евгений Берестовой
@berestov
Nov 03 2016 20:18
@jhaoda Да, как я мог такое упустить... Спасибо! ;) Реально подсказал идею.
Евгений Берестовой
@berestov
Nov 03 2016 20:24
@seoperin Посмотри в сторону eloquent по документации... но с первого взгляда неверно составлены таблицы БД... правда там есть возможность подмены ключей поиска!
Dave
@aios
Nov 03 2016 20:25
@seoperin алголию заюзай.
дорогая - зато твою проблему решает почти полностью.
Евгений Берестовой
@berestov
Nov 03 2016 20:26
@aios алголия это что?
Dave
@aios
Nov 03 2016 20:47
@berestov загугли Algolia
Евгений Берестовой
@berestov
Nov 03 2016 20:49
@aios Спс!
KarmaBot
@KarmaBot
Nov 03 2016 20:49
Спасибо (+1) для @aios принято! Текущая карма +256.
Mikhail Sychev
@snutworks
Nov 03 2016 21:09
Подскажите, поле в таблице и unique и nullable это вообще законно?
и вообще, как быть если у пользователя может не быть электропочты?
JhaoDa
@jhaoda
Nov 03 2016 21:19
@snutworks в штате Дэлавер это законно только по будням
Mikhail Sychev
@snutworks
Nov 03 2016 21:24
@jhaoda не издевайся, подскажи лучше:)
JhaoDa
@jhaoda
Nov 03 2016 21:25
@snutworks что подсказать? Я не вижу вопроса.
БД позволяет unique и nullable вместе? Да. Нет вопросов.
Как быть, если у пользователя нет мыла? Откуда мне-то знать, это твое приложение, твоя логика, тебе и думать
Mikhail Sychev
@snutworks
Nov 03 2016 21:25
@jhaoda правило unique:table_name при значении null будет нормально выполняться?
JhaoDa
@jhaoda
Nov 03 2016 21:26
@snutworks а ты проверь
Mikhail Sychev
@snutworks
Nov 03 2016 21:27
я просто уже не знаю куда копать, нашел одну штуку которую не сделал при переезде:
Your App\Exceptions\Handler class' $dontReport property should be updated to include at least the following exception types:
там был только HttpException, я добавил остальные что были в доке
@jhaoda я проверял, срабатывает
butschster
@butschster
Nov 03 2016 22:47
@jhaoda ты здесь?:)
JhaoDa
@jhaoda
Nov 03 2016 22:48
@butschster таки да
butschster
@butschster
Nov 03 2016 22:48
@jhaoda у меня есть небольшой вопрос, касающийся отправки Mailable сообщений через очереди
ты в них шаришь?
JhaoDa
@jhaoda
Nov 03 2016 22:49
@butschster не очень
butschster
@butschster
Nov 03 2016 22:49
@jhaoda значит нам не по пути :)
Mikhail Sychev
@snutworks
Nov 03 2016 22:53

я переписал у себя в AuthController::register

    public function register(Request $request)
    {
        $credentials = $request->only(['email', 'password', 'agree']);
        $email = $credentials['email'];
        $this->_log->info('try register with: ' . $email);
        $validator = $this->validator($credentials);

        if ($validator->fails()) {
            $this->_log->warning('register failed for: ' . $email);
            $this->throwValidationException(
                $request, $validator
            );
        }

        $user = $this->create($request->all());
        $this->sendEmailConfirmationTo($user);

        return redirect()->route('login');
    }

так вот, при попадании в $validator->fails() кидается эксепшн, который честно игнорится хендлером, и пользователь создается/пытается уйти мыло.

Как правильно обработать это исключение? Делать return redirect()->back()->withError() ? если пофейлилась проверка?

не, что-то я бред несу, ничто нигде не создается
Mikhail Sychev
@snutworks
Nov 03 2016 23:12
видимо да, я при переезде с 5.1 на 5.2 не обновил App\Exceptions\Handler.php
JhaoDa
@jhaoda
Nov 03 2016 23:12
@snutworks тебе не лень писать то, что уже сделано в форм реквестах? :)