laravel, как использовать контроллер хранилища действий для сохранения объектов в каскаде - PullRequest
0 голосов
/ 27 мая 2019

Я работаю над приложением, которое требует мульти-аутентификации, я использовал предустановку creative-tim для панели мониторинга (при условии, что creative-tim использует имя «Пользователь» для хранения пользователей в панели мониторинга), которую я создал поверх этого таблица Admin, которая имеет отношение один к одному с таблицей User, и создала соответствующее промежуточное программное обеспечение для ограничения доступа к моим представлениям «Только для администратора» и использовала tinker, чтобы создать администратора и связать его с тестовым всем. проблема в том, что я хочу автоматизировать создание отношений администратора с пользователем с помощью регистрационной формы, единственная проблема в том, что шаблон creative-tim, который я использую, не соответствует документам laravel, поэтому я не мог его понять и я не знаю, как связать модель «Администратор» с созданным «Пользователем».

Вот часть базы данных / модели: Пользователь (номер, имя, адрес электронной почты, email_verified_at, пароль, rememberToken, временные метки) Администратор (идентификатор, user_id, роль, метки времени)

они использовали (очевидно, хранилище), но они использовали UserRequest и User Object, я попытался сделать это:

        $Admin = new Admin();
        $Admin->role="Admin";
        $Admin->user_id = $model->id;
        $Admin->save();

вот оригинальная функция, которую я нашел

    public function store(UserRequest $request, User $model)
    {
        $model->create($request->merge(['password' =>Hash::make($request->get('password'))])->all());
  return redirect()->route('user.index')->withStatus(__('User successfully created.'));
    }

1 Ответ

0 голосов
/ 31 мая 2019

Я действительно нашел решение для этой проблемы (это было не в моем вкусе), поэтому я создал пользователя нормально и получил идентификатор, использовал его для создания администратора, отлично работает после проверки

public function store(UserRequest $request, User $model)
    {
         //validation parameters

         $item = new User();
        $item->name = request('name');
        $item->email = request('email');
        $item->password = Hash::make(request('password'));
        $item->save();

        $admin = new Admin();
        $admin->user_id = $item->id;
        $admin->role ="SuperAdmin";
        $admin->save();
        return redirect()->route('user.index')->withStatus(__('User successfully created.'));
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...