пакет spatie permission, если это важно. Смотрю в их доку, и вижу фигу, как говорится
На локальном компе через сиды, если админки нет. А так, через админку сайта
Спасибо)) Но я как раз о том, чтобы админ ручками добавлял желаемого ему пользователя. Либо я плохо рою, либо я дурак (скорее второе)
Обычно админку прикручивают, в которой есть управление пользователем. А первого можно и напрямую в базе создать, если прям жестить)
Ну у меня Admin LTE, вся начинка ручками напихана. Вот я и пытаюсь понять, какой командой юзера завести
Ну вообще юзер это запись в базе. Под капотом должно быть что-то типа App\Models\User::create(...)
Вот я что-то такое и хочу... А может есть пример живой?
Из самого простого: use App\Models\User; public function store(Request $request) { $user = User::create( $request->validated() ); return response()-json($user); } А лучше так: public function store(UserRequest $request) { $user = User::create( $request->validated() ); return UserResource::make($user); }
Спасибо. А можно где-то в доках найти это? Потому что для меня здесь много неочевидного... Например хэш пароля, плюс мне надо роль выдать ему после записи в основную таблицу, и т.д. )
https://laravel.com/docs/8.x/eloquent#mass-assignment
Хэш пароля можно в каст модели вынести. Роль тоже. Создаёшь юзера и накидываешь роль по доке Спати.
Я прям начинающий-начинающий, мне сложно понять что такое каст модели. В любом случае, спасибо огромное! Буду штудировать гугл и доки
Каст модели - это механизм преобразования значения как в вид для записи в базу, так и наоборот при его чтении. По сути, это мутатор, вынесенный в отдельный класс. https://laravel.com/docs/8.x/eloquent-mutators#custom-casts Самый простой пример, который пришёл в голову, например, в базе должна храниться строка, а при работе в коде должен быть массив. Конечно, вариант ниже полная дичь при работе с данными, но в качестве примера очень даже наглядно: В базе хранится так: foo,bar,baz В переменной должно быть так: ['foo', 'bar', 'baz'] Каст для этого будет таким: public function get($model, $key, $value, $attributes) { return explode(',', $value); } public function set($model, $key, $value, $attributes) { return implode(',', $value); }
спасибо. Не знал. Я такое обычно всегда в сервисы выносил
Благодарю! Буду разбираться
Обсуждают сегодня