Evgenii
Volodymyr
Всем привет скажите, как решить проблему генерации динамического урл хоста для свагера. Может кто-то сталкивался?
Через константы, выдает ошибку, "не могу найти констатнту", в мануалах что находил описано через константы, но не заводиться...
Владимир
SarcasmIO
SarcasmIO
либо в phpunit можно,вроде, заюзать @depends
Владимир
каждый раз создавать как то не очень, внести этот функционал в этот же класс тоже не подходит
SarcasmIO
если это конкретный тесткейс
SarcasmIO
задай свойство в __setUp
SarcasmIO
+ тебе ничего не мешает переопределить трейт и сделать 2 метода, $this->withRefreshDatabaseTrait(); $this->withoutDatabaseTrait();
SarcasmIO
и совать его в свои кейсы по надобности
Владимир
мне надо чтобы откат к первоначальному состоянию был после выполнения всех тестов, чтобы тест могу обратиться к данным в БД измененые предыдущим тестом
SarcasmIO
я тебе дал 3 варианта.
Переопределить трейт сделать 2 метода.
Вынести это в __setUp
заюзать @depends
SarcasmIO
тебя никто не заставляет вообще юзать этот трейт, тебе достаточно фабрики и ->fresh() где это надо
Владимир
спасибо за советы
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);
}
}
в чем, собственно, моя ошибка?
Alex
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?
Dmitry
@oneerror спасиб за трейт
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
Alex
Токен не в сессии лежит а в локалсторадже например, jwt и есть замена сессиц
Alex
Сервер получает jwt и проверяет его валидность своим ключом
Alex
Причем jwt в принципе легко отловить, но вот модифицировать его никак не получится потому что любое изменение токена делает его невалидным
Alex
Alex
user->events->take(count)
Ivan
Alex
Я так понял у вас events принадлежит user?
Ivan
Да
Alex
Тогда вам надо elioquent relations для начала
Alex
HasMany и belongsTo
Vladimir
Че за хня
Ivan
У меня всё через отношения и подтягивается
Alex
Ну, тогда user->events() вам выдают собвтия пользователя?
Alex
Ой, user->events
Alex
Просто в вашем запросе отношений нет никаких
Ivan
Ну, то что я в with написал, всё это подтягивается
Ivan
Там в моделях других отношения все
Alex
Ну в общем user->events->take(10)
Alex
А, ну и get()
Ivan
Сложновато. Ладно, спасибо большое, покопаюсь сейчас)
Ivan
Maksim (Ellrion)
Это не сработает
Ivan
В where? А что не так с ним?
Maksim (Ellrion)
Все релейшены выбираются 1 запросом. Так ты ограничишь что всего эвент выберется 10 а не для каждого юзера
Ivan
Ivan
Ок, понял, спасибо. Прочитаю про коллекции
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 для всех команд
Evan