Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#26 Laravel 5.x » отношение модели к модели в моделе) » 05.03.2018 17:35:49

Yuliya
Ответов: 2

задача.
есть 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 таблицы сразу?можно хотя бы на примере через модели,а не репозиторий. хочу понять,можно ли сделать так сразу

#28 Laravel 5.x » удаление записей из связанной таблицы » 05.03.2018 13:33:17

Yuliya
Ответов: 1

Добрые люди, помогите разобраться)
есть 2 модели (компания и модули) со связями многие ко многим.
задача: удалить запись из второй например модели и соответственно удалить все записи о ней в связанной таблице. с первым пунктом задачи легко

$module->delete()

.

подскажите, как правильно организовать удаление связанных записей,не удаляя первую модель,а только те записи,которые относились ко второй)

#29 Re: Laravel 5.x » добавление данных в связанные таблицы » 27.02.2018 17:00:18

вот придумала еще такой вариант)
но опять же очень хочу услышать авторитетное мнение.
на сколько плохо так писать и есть ли что-то лучше?

$company=$this->model->create($request->all());
$company->companyInformation()->create($request->all());

#30 Laravel 5.x » добавление данных в связанные таблицы » 27.02.2018 16:35:44

Yuliya
Ответов: 3

Новичок в ларавел и пытаюсь разобраться с 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 связанные таблицы?
буду благодарна за наставления)

#31 Re: Laravel 5.x » Разлогирование пользователя » 19.02.2018 12:13:01

А если после входа сразу закрыть сессию, так не получится?
тут надо как-то закрыть предыдущую сессию,если только хранить ее где-то...

#32 Re: Laravel 5.x » Разлогирование пользователя » 19.02.2018 12:12:16

так вот нужно писать свой мидлвар для проверки? и как его совместить с auth чтобы не делать и его проверку?)

#33 Re: Laravel 5.x » Разлогирование пользователя » 19.02.2018 11:46:17

того же самого пользователя. т е он не должен быть залогинен с нескольких браузеров. если под его аккаунктом заходить с другого браузера,то с первого должно выбросить. стандартно так не происходит, открывается вторая сессия у него

#34 Laravel 5.x » Разлогирование пользователя » 19.02.2018 11:36:42

Yuliya
Ответов: 15

Использую стандартную аутентификацию для входа пользователя. и посредник auth при проверках соответственно. Стоит задача выкинуть пользователя, если он зашел с другого браузера-компьютера и тд. понимаю, что нужно ка-кто или удалить ему сессию или хранить время входа его на сайт в таблицу БД и в сессии и сравнивать их. но не могу понять,как мне привязать это все с посредником auth, который каждый раз проверяет, залогинен ли пользователь. может кто сможет подсказать, как в таких случаях лучше и красивее сделать проверку и выбросить пользователя?

#35 Laravel 5.x » Gate::denies в конструкторе » 29.08.2017 13:55:08

Yuliya
Ответов: 1

Подскажите, кто сталкивался 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((
Кто может направить, что не так, или так нельзя вообще?

#36 Laravel 5.x » Разграничение прав меню » 11.08.2017 17:10:55

Yuliya
Ответов: 1

Уважаемые разработчики, прошу помощи в построении логики! Хочу вывести меню с помощью построителя lavary/laravel-menu. с этим проблем не возникло. пункты самого меню хранятся в БД с разграничением на родительский или дочерний. далее в контроллере конструируется меню и посылается соответственно в шаблон. И вот вопрос в чем, мне нужно выводить 4 разных вида меню в зависимости от прав зашедшего. Подскажите, как это сделать, что было все красиво? не выводить 4 разных шаблона при этом. как сделать условия при формировании в контроллере, чтобы не проверять каждый пункт (оно строится циклом из БД)? или же помечать в самой таблице БД,но как,если один пункт может быть доступен и двум и трем разным правам?  или проверять в самом шаблоне права и соответственно печатать или нет элемент(но это ужасно некрасиво выглядит, т к много условий нужно)Может кто делал подобный вывод?) Буду благодарна за направление в логике)

Подвал раздела