Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
задача.
есть 3 модели: user,его компания и права.
соответственно
class User {
public function roles()
{
return $this->hasOne('App\Role', 'id');
}
public function companies()
{
return $this->hasOne('App\Company', 'id');
}
}и тд. Нужно вывести список прав с привязкой к компании (соответственно через userа)
Делаю жадную загрузку через репозитории и
$this->rol_rep->with('users')->all() выдает коллекцию ролей сразу с юзерами и все хорошо.
(в репозитории реализован свой метод with)
но мне нужно в эти коллекции получить еще и компании юзеров,чтобы не делать отдельные запросы.
есть ли возможно получить ка-кто вот это внутреннее отношение, т е связать 3 таблицы сразу?можно хотя бы на примере через модели,а не репозиторий. хочу понять,можно ли сделать так сразу
вопрос снимается)разобралась
Добрые люди, помогите разобраться)
есть 2 модели (компания и модули) со связями многие ко многим.
задача: удалить запись из второй например модели и соответственно удалить все записи о ней в связанной таблице. с первым пунктом задачи легко
$module->delete().
подскажите, как правильно организовать удаление связанных записей,не удаляя первую модель,а только те записи,которые относились ко второй)
вот придумала еще такой вариант)
но опять же очень хочу услышать авторитетное мнение.
на сколько плохо так писать и есть ли что-то лучше?
$company=$this->model->create($request->all());
$company->companyInformation()->create($request->all());Новичок в ларавел и пытаюсь разобраться с Eloquent. есть 2 связанные таблицы (к примеру 1 к 1). хочу вставить новую запись соотвественно сразу в 2 таблицы.
public function __construct(Company $companies)
{
$this->model = $companies;
}
public function....{
$data = $request->except('_token');
$this->model->fill($data)->save();
$data['company_id'] = $this->model->id;//поле по которому связаны 2 таблицы
$this->model->companyInformation()->create($data);
}вот на что меня хватило придумать и оно работает.
но у меня вопрос. есть ли более красивое решение вставки новой записи сразу в 2 связанные таблицы?
буду благодарна за наставления)
А если после входа сразу закрыть сессию, так не получится?
тут надо как-то закрыть предыдущую сессию,если только хранить ее где-то...
так вот нужно писать свой мидлвар для проверки? и как его совместить с auth чтобы не делать и его проверку?)
того же самого пользователя. т е он не должен быть залогинен с нескольких браузеров. если под его аккаунктом заходить с другого браузера,то с первого должно выбросить. стандартно так не происходит, открывается вторая сессия у него
Использую стандартную аутентификацию для входа пользователя. и посредник auth при проверках соответственно. Стоит задача выкинуть пользователя, если он зашел с другого браузера-компьютера и тд. понимаю, что нужно ка-кто или удалить ему сессию или хранить время входа его на сайт в таблицу БД и в сессии и сравнивать их. но не могу понять,как мне привязать это все с посредником auth, который каждый раз проверяет, залогинен ли пользователь. может кто сможет подсказать, как в таких случаях лучше и красивее сделать проверку и выбросить пользователя?
Подскажите, кто сталкивался laravel 5.4. Хочу сделать проверку прав и ролей через фасад Gate что-то типа
Gate::define('ADMIN', function (User $user) {
return $user->hasRole('ADMIN');
});прописывается в провайдере AuthServiceProvider. метод hasRole в модели проверяет соотв право и возвращает true или false. и далее
if (Gate::denies('ADMIN')) {
abort(403);
}все это работает,если последнее я вызываю в определенном методе контроллера. но я хочу вызвать проверку в конструкторе контроллера, чтобы распространялось на весь,но в таком случае проверка всегда кидает на abort((
Кто может направить, что не так, или так нельзя вообще?
Уважаемые разработчики, прошу помощи в построении логики! Хочу вывести меню с помощью построителя lavary/laravel-menu. с этим проблем не возникло. пункты самого меню хранятся в БД с разграничением на родительский или дочерний. далее в контроллере конструируется меню и посылается соответственно в шаблон. И вот вопрос в чем, мне нужно выводить 4 разных вида меню в зависимости от прав зашедшего. Подскажите, как это сделать, что было все красиво? не выводить 4 разных шаблона при этом. как сделать условия при формировании в контроллере, чтобы не проверять каждый пункт (оно строится циклом из БД)? или же помечать в самой таблице БД,но как,если один пункт может быть доступен и двум и трем разным правам? или проверять в самом шаблоне права и соответственно печатать или нет элемент(но это ужасно некрасиво выглядит, т к много условий нужно)Может кто делал подобный вывод?) Буду благодарна за направление в логике)