Volodymyr
Всем привет скажите, как решить проблему генерации динамического урл хоста для свагера. Может кто-то сталкивался? Через константы, выдает ошибку, "не могу найти констатнту", в мануалах что находил описано через константы, но не заводиться...
SarcasmIO
либо в phpunit можно,вроде, заюзать @depends
Владимир
каждый раз создавать как то не очень, внести этот функционал в этот же класс тоже не подходит
SarcasmIO
если это конкретный тесткейс
SarcasmIO
задай свойство в __setUp
SarcasmIO
+ тебе ничего не мешает переопределить трейт и сделать 2 метода, $this->withRefreshDatabaseTrait(); $this->withoutDatabaseTrait();
SarcasmIO
и совать его в свои кейсы по надобности
Владимир
мне надо чтобы откат к первоначальному состоянию был после выполнения всех тестов, чтобы тест могу обратиться к данным в БД измененые предыдущим тестом
SarcasmIO
я тебе дал 3 варианта. Переопределить трейт сделать 2 метода. Вынести это в __setUp заюзать @depends
SarcasmIO
тебя никто не заставляет вообще юзать этот трейт, тебе достаточно фабрики и ->fresh() где это надо
Dmitry
мне надо чтобы откат к первоначальному состоянию был после выполнения всех тестов, чтобы тест могу обратиться к данным в БД измененые предыдущим тестом
все тесты должны быть независимы. и уж тем более не должны зависть от данных созданных в другом тесте. Это основная концепция. Cоздать данные которые используют все тесты кейса можно в setUp
Владимир
спасибо за советы
Anonymous
день добрый. есть модели Post и Tag с отношениями belongsToMany и связующая таблица post_tag. При получении Tag из Post все нормально, но при попытке получить Post в Tag Tag::with('posts')->firstOrFail(); приложение валится с ошибкой Call to a member function addEagerConstraints() on null. По интернетам ничего толкового не нашел. Модель Tag: class Tag extends Model { public function posts() { $this->belongsToMany(Post::class); } } в чем, собственно, моя ошибка?
Anonymous
ахахахахах
Anonymous
спасибо, пойду спать, пожалуй
Dmitry
Подскажите, можно как то получить все связи модели? что то типа Post [ user => User::class, ... ]
SarcasmIO
типо такого сойдет ?
SarcasmIO
SarcasmIO
https://gist.github.com/kefzce/06753f465a1530c3ed0f575bf38e52d5
Dmitry
я так понимаю, это единственный способ, дергать метод и проверять что внутри отношение?
SarcasmIO
ну вообще вопрос очень хорошо гуглится, есть несколько вариантов решений, вроде стандартного getRelations(если ты юзаешь Mode::with([relation1,relation2), к,getRelation() по ключу, несколько вариантов трейтов и тп, но все они завязаны на рефлексии
Dmitry
это я погуглил. getRations работают уже после выборки. А мне до выюорки хотелось бы узнать какие есть связи. А может есть простой способ из общего массива оновлять связи? Типа [ 'field' => 'value', 'relation_name' =>[ 0 => [ filed => value ] ] ]
Vladimir
Ребят кто нибудь ставил voyager?
Vladimir
Все поставилось без ошибок но когла перехожу на админку выдает
Vladimir
Base table or view not found: 1146 Table 'laratest.settings' doesn't exist (SQL: select * from settings) (View: C:\xampp\htdocs\laratest\vendor\tcg\voyager\resources\views\login.blade.php)
Vladimir
Потерял шаблон login?
SarcasmIO
Потерял шаблон login?
миграции не запустил
Dmitry
@oneerror спасиб за трейт
Vladimir
миграции не запустил
неее... все отработало
SarcasmIO
неее... все отработало
рестартовал сервак? dump-autoload/clear cache/config clear/clear-compiled/etc ?
Vladimir
Сервак рестартовал, но cache не чистил
Anton
ну пока явно видно что таблицы нет
Anton
напрмер конфиг не сменил - и лезет не в ту БД
Anton
хотя миграции бы накатывались по этому же конфигу
Rishat
Ребят, привет. JWT пытаюсь понять на уровне регистрации пользователя. Пользователь регистрирует аккаунт и получает токен уникальный в котором идёт его user_id зашифрованное получается ? И этот токен лежит в сессии у юзера и если этот токен валиден то что. И как валидность его проверяется на стороне сервера не пойму;( Или я вообще не так все понимаю ?
Ivan
Ребят, подскажите, пожалуйста, как сделать, чтобы если в events.count содержится больше объектов, чем значение в поле events.place, то эти события выводить не нужно. Как это правильно оформить? У меня сейчас вот так: return User::with(['events', 'events.count'])->where('users.id', '=', $id)->first();
Ivan
Alex
Токен не в сессии лежит а в локалсторадже например, jwt и есть замена сессиц
Alex
Сервер получает jwt и проверяет его валидность своим ключом
Alex
Причем jwt в принципе легко отловить, но вот модифицировать его никак не получится потому что любое изменение токена делает его невалидным
Alex
user->events->take(count)
Ivan
user->events->take(count)
А куда это записывать?
Alex
Я так понял у вас events принадлежит user?
Ivan
Да
Alex
Тогда вам надо elioquent relations для начала
Alex
HasMany и belongsTo
Vladimir
ну пока явно видно что таблицы нет
Все верно, сейчас посмотрел, а записей о вояджере в таблице нет и тестовые миграции тоже не прокидывает в базу
Vladimir
Че за хня
Ivan
У меня всё через отношения и подтягивается
Alex
Ну, тогда user->events() вам выдают собвтия пользователя?
Alex
Ой, user->events
Alex
Просто в вашем запросе отношений нет никаких
Ivan
Ну, то что я в with написал, всё это подтягивается
Ivan
Там в моделях других отношения все
Alex
Ну в общем user->events->take(10)
Alex
А, ну и get()
Ivan
Сложновато. Ладно, спасибо большое, покопаюсь сейчас)
Maksim (Ellrion)
Ну в общем user->events->take(10)
Это для одного юзера. И то не верно. Скобки у связи надо. А вот для массовой фигни ему только постобработка поможет
Maksim (Ellrion)
Что за постобработка?
Выбрать жадео а потом обрезать уже коллекции
Maksim (Ellrion)
Это не сработает
Ivan
В where? А что не так с ним?
Maksim (Ellrion)
Все релейшены выбираются 1 запросом. Так ты ограничишь что всего эвент выберется 10 а не для каждого юзера
Ivan
Ок, понял, спасибо. Прочитаю про коллекции
Maksim (Ellrion)
А что значит цифра 10?
Я отвечал на конкретное сообщение. И 10 оттуда
Maksim (Ellrion)
Тут так то вообще жадная не нужна
Maksim (Ellrion)
Только потому что у него 1 юзер. А так как жадную никто не делает для 1 юзера а для более 1 не будет работать корректно то я и написал это
Evan
парни напомните пожалуйста какая команда создаст (вроде) контроллер с миграцией одной строкой
SarcasmIO
php artisan make:controller -m
Evan
спс
SarcasmIO
можешь посмотреть все доступные ключи так: php artisan make:whatyouneed —help
Alex
Или php artisan list для всех команд