Laravel по-русски

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

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

#1 Re: Laravel 5.x » Как в одном сервисе использовать другой? » 21.12.2017 12:55:00

Я думал, это нужно делать каким-то определенным образом. Вобщем поступил как с обычным контроллером.
htclog81, политики есть. использую - https://github.com/Zizaco/entrust

Спасибо всем за уделенное время!

#2 Re: Laravel 5.x » Как в одном сервисе использовать другой? » 19.12.2017 17:49:46

Имею в виду через new или как-то по другому?
Ведь в провайдаре у меня указан вызов через singleton.

#3 Laravel 5.x » Как в одном сервисе использовать другой? » 19.12.2017 17:09:24

Trolsenon
Ответов: 5

Доброго времени суток.
Подскажите, как в одном сервисе использовать другой?
Суть в том, что я из контролера передаю данные для обработки (внесение в БД) в сервис-№1. А, в сервисе-№1, я хочу обратится к сервису-№2, который должен проверить имеет ли данный пользователь редактировать эти данные.
Как я могу в сервисе-№1 обратится к сервису-№2?
Спасибо за уделенное время.

#5 Laravel 5.x » Оптимизация присвоение роли поьзователю » 13.12.2017 11:30:04

Trolsenon
Ответов: 2

Доброго времени суток!
Возможно, вы сможете мне подсказать как сделать мой код более оптимальным.

public function user()
    {
        $userId = (int)request('user_id');

        if (!(Auth::user()->hasRole(Role::ROLE_SUPERADMIN) || Auth::user()->hasRole(Role::ROLE_ADMIN))) {
            return Auth::user();
        } elseif ($userId && $user = User::find($userId)) {
            return $user;
        } else {
            return Auth::user();
        }
    }

Суть метода в том, что если наша роль не админ или суперадмин мы можем редактировать только свои данные. А, если есть get параметр user_id и этот id есть в БД (то есть пользователь существует), то мы можем править данные пользователя с переданным id.
Сам метод находится в сервисе.
Спасибо за уделенное время!

#7 Re: Laravel 5.x » Оптимизация запроса на вставку в БД » 11.12.2017 00:10:54

Спасибо!
Ваша, помощь мне помогла.
Но, модель мене все таки понадобиться там присутствует - public $timestamps = false;
Или возможно обойтись без этого?

#8 Laravel 5.x » Оптимизация запроса на вставку в БД » 10.12.2017 21:31:01

Trolsenon
Ответов: 4

Доброго времени суток!
Подскажите, как оптимизировать следующий запрос?
Имеются 3 таблицы: 1.users, 2.projects, 3.project_user.
1. пользователи
2. пректы
3. связь пользователя и проекта (id, user_id, project_id)
В контроллере выполняю следующий метод:

public function changeUserProjects($checkedProjects, int $userId)
    {
        foreach ($checkedProjects as $projectId) {
            $userProjects = new UsersProjects();

            $userProjects->user_id = $userId;
            $userProjects->project_id = $projectId;
            $userProjects->active = 1;

            $userProjects->save();
        }

        $myProjects = $this->UserProjectIds($userId);

        return $myProjects;
    }

Подскажите как можно оптимизировать эту часть:

...
            $userProjects = new UsersProjects();

            $userProjects->user_id = $userId;
            $userProjects->project_id = $projectId;
            $userProjects->active = 1;

            $userProjects->save();
...

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

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