Size: a a a

2021 March 16

НЛ

Никита Лазеев... in Laravel Pro
всем привет, использую в своем проекте Laravel и Orchid, хотел бы сделать разграничение авторизации для обычных пользователей и собственно для админов из Orchid админки, хотел узнать как можно это реализовать? а то отдельный guard в конфигах создал, а что дальше делать не слишком понятно
источник

AB

Alex B in Laravel Pro
Привет ребят
Помогите пожалуйста разобраться с рилейшонами.
posts и users это основые сущности, а main_table общая для них, с которой они соединяются через post_users.
Сейчас у меня проблема с пониманием того как правильно это все связать вместе. А именно как связать posts и users c  main_table при этом чтобы можно было без боли создават фейковые данные через factory. Сейчас у меня связь через модель PostUser, но сейчас проблемы с сидингом фейковых данных для тестинга.
Post::factory()->has(MainTable::factory()->count(50)) - при этом мне нужно чтобы в промежуточной таблице поле user_id не пустовал. Я хочу сделать это через пивотный класс, но не знаю как правильно, весь интернет перерыл вроде уже.

ПС схему менять не надо, потому что в пивотной таблице мне может быть нужно хранить доп инфу
источник

AG

Alexey Grishin in Laravel Pro
Alex B
Привет ребят
Помогите пожалуйста разобраться с рилейшонами.
posts и users это основые сущности, а main_table общая для них, с которой они соединяются через post_users.
Сейчас у меня проблема с пониманием того как правильно это все связать вместе. А именно как связать posts и users c  main_table при этом чтобы можно было без боли создават фейковые данные через factory. Сейчас у меня связь через модель PostUser, но сейчас проблемы с сидингом фейковых данных для тестинга.
Post::factory()->has(MainTable::factory()->count(50)) - при этом мне нужно чтобы в промежуточной таблице поле user_id не пустовал. Я хочу сделать это через пивотный класс, но не знаю как правильно, весь интернет перерыл вроде уже.

ПС схему менять не надо, потому что в пивотной таблице мне может быть нужно хранить доп инфу
судя по твоей схеме, тебе не нужна таблица post_users, просто добавь в main поля user_id и post_id
источник

AB

Alex B in Laravel Pro
Alex B
Привет ребят
Помогите пожалуйста разобраться с рилейшонами.
posts и users это основые сущности, а main_table общая для них, с которой они соединяются через post_users.
Сейчас у меня проблема с пониманием того как правильно это все связать вместе. А именно как связать posts и users c  main_table при этом чтобы можно было без боли создават фейковые данные через factory. Сейчас у меня связь через модель PostUser, но сейчас проблемы с сидингом фейковых данных для тестинга.
Post::factory()->has(MainTable::factory()->count(50)) - при этом мне нужно чтобы в промежуточной таблице поле user_id не пустовал. Я хочу сделать это через пивотный класс, но не знаю как правильно, весь интернет перерыл вроде уже.

ПС схему менять не надо, потому что в пивотной таблице мне может быть нужно хранить доп инфу
Post::factory()->has(MainTable::factory()->count(50)) - при этом мне нужно чтобы в промежуточной таблице поле user_id не пустовал. Я хочу сделать это через пивотный класс
источник

AB

Alex B in Laravel Pro
Alexey Grishin
судя по твоей схеме, тебе не нужна таблица post_users, просто добавь в main поля user_id и post_id
на самом деле эта схема лишь пример, в реальности сущности другие, изменить ничего не могу
источник

ПУ

Павел Успенский... in Laravel Pro
Alex B
Привет ребят
Помогите пожалуйста разобраться с рилейшонами.
posts и users это основые сущности, а main_table общая для них, с которой они соединяются через post_users.
Сейчас у меня проблема с пониманием того как правильно это все связать вместе. А именно как связать posts и users c  main_table при этом чтобы можно было без боли создават фейковые данные через factory. Сейчас у меня связь через модель PostUser, но сейчас проблемы с сидингом фейковых данных для тестинга.
Post::factory()->has(MainTable::factory()->count(50)) - при этом мне нужно чтобы в промежуточной таблице поле user_id не пустовал. Я хочу сделать это через пивотный класс, но не знаю как правильно, весь интернет перерыл вроде уже.

ПС схему менять не надо, потому что в пивотной таблице мне может быть нужно хранить доп инфу
posts -> main_table через hasManyThrough
источник

ПУ

Павел Успенский... in Laravel Pro
источник

AB

Alex B in Laravel Pro
Павел Успенский
posts -> main_table через hasManyThrough
ну я как бы уже сделал это, но как при сидинге указать user_id, сейчас through у меня через модель, а мне как бы эта модель совсем не нужна
источник

ПУ

Павел Успенский... in Laravel Pro
Alex B
ну я как бы уже сделал это, но как при сидинге указать user_id, сейчас through у меня через модель, а мне как бы эта модель совсем не нужна
seed сам должен создавать модели
источник

ПУ

Павел Успенский... in Laravel Pro
вы условие напишите, что хотите получить?
источник

ПУ

Павел Успенский... in Laravel Pro
Павел Успенский
seed сам должен создавать модели
точней factory
источник

AB

Alex B in Laravel Pro
стопе, я же могу через PostUser::factory()->for(User::factory())->for(Post::factory())->has(MainTable::factory()->count(50))
создать
то что мне нужно
источник

AB

Alex B in Laravel Pro
Alex B
стопе, я же могу через PostUser::factory()->for(User::factory())->for(Post::factory())->has(MainTable::factory()->count(50))
создать
то что мне нужно
бля, получится огромный кодищее
источник

AB

Alex B in Laravel Pro
Павел Успенский
вы условие напишите, что хотите получить?
мне сейчас нужные данные, но в целом, я хочу отказаться от модели PostUser, она мне совсем не нужна получается
источник

AB

Alex B in Laravel Pro
Alex B
мне сейчас нужные данные, но в целом, я хочу отказаться от модели PostUser, она мне совсем не нужна получается
* данные и удобный их сидинг
источник

AB

Alex B in Laravel Pro
Alex B
стопе, я же могу через PostUser::factory()->for(User::factory())->for(Post::factory())->has(MainTable::factory()->count(50))
создать
то что мне нужно
ну вот, и при сидинге эта модель тоже не нужна, мешает
источник

В

Владимир in Laravel Pro
Коллеги, как лучше сделать модель из данных, полученных по API, а не из БД?
Есть задача вывести записи статистики и логи на странице админки на laravel-admin в нативный грид. Логи приходят по API из другого сервиса (тоже своего).
Грид умеет принимать только Eloquent\Model, поэтому получаю данные из API в сервисе и гидрирую ими модель. Для поштучной работы с моделями идельно. Но грид сам хочет получать данные из QueryBuilder (get/first/paginate и т.д.) и в таком случае придётся много переписывать на работу с API вместо БД :-(
Попробовал cristal/php-api-wrapper - удобно, всё прозрачно маппит в API, но возращает модели из собственного класса, который не лезет в грид. Посмотрел ещё несколько пакетов - тоже самое.
Очень хочется использовать именно этот грид ради пагинации, сортировки, фильтров по столбцам и аякса. Подкажите идеи?
источник

AB

Alex B in Laravel Pro
Владимир
Коллеги, как лучше сделать модель из данных, полученных по API, а не из БД?
Есть задача вывести записи статистики и логи на странице админки на laravel-admin в нативный грид. Логи приходят по API из другого сервиса (тоже своего).
Грид умеет принимать только Eloquent\Model, поэтому получаю данные из API в сервисе и гидрирую ими модель. Для поштучной работы с моделями идельно. Но грид сам хочет получать данные из QueryBuilder (get/first/paginate и т.д.) и в таком случае придётся много переписывать на работу с API вместо БД :-(
Попробовал cristal/php-api-wrapper - удобно, всё прозрачно маппит в API, но возращает модели из собственного класса, который не лезет в грид. Посмотрел ещё несколько пакетов - тоже самое.
Очень хочется использовать именно этот грид ради пагинации, сортировки, фильтров по столбцам и аякса. Подкажите идеи?
ты ведь можешь обернуть коллекцию данных в collection
источник

AB

Alex B in Laravel Pro
и вроде бы там был метод пагинации
источник

В

Владимир in Laravel Pro
Alex B
ты ведь можешь обернуть коллекцию данных в collection
Гидрация из массива данных (Log::hydrate($data)) возвращает коллекцию, это не проблема. Проблема в
$grid = new Grid(new Log());
и дальше внутри грида $log->get() и т.д., т.е. напрямую в квери билдер, а не в коллекцию.
Ну и пагинировать коллекцию не вариант, т.к. для этого сначала придётся получить 100500 записей из апи, а потом только резать на страницы
источник