Примечание: Для этой статьи, я полагаю, вы уже установили свежую копию Laravel 8 с помощью Jetstream и Инерция стек аутентификации.
Установка Laravel по умолчанию содержит только два поля в разделе “Информация о профиле” профиля пользователя. Эти два поля являются полями имени и электронной почты, как показано на скриншоте ниже:
Чтобы добавить новое поле в этот раздел, нам необходимо выполнить следующие действия. В этом примере мы собираемся добавить поле телефон в профиль.
Шаг 1: Добавьте поле в пользовательский интерфейс
Перейдите в форму файл \ресурсы\js\Страницы\Профиль\Обновить информацию о профиле.просмотрите и найдите сегмент HTML-кода для поля электронной почты. Продублируйте этот код для нового поля и замените ключевые слова электронной почты на телефон.
Далее в том же файле добавьте новое поле в данные формы. В приведенном ниже фрагменте кода вы можете видеть, что я добавил строку телефон: этот.пользователь.телефон под строкой поля электронной почты электронная почта: этот.пользователь.электронная почта .
data() {
return {
form: this.$inertia.form({
_method: 'PUT',
name: this.user.name,
email: this.user.email,
phone: this.user.phone,
photo: null,
}),
photoPreview: null,
}
},
Теперь запустите команду npm run dev , чтобы изменения в файле javascript были скомпилированы. На этом часть вашей задачи с пользовательским интерфейсом выполнена. Теперь вы можете увидеть новое поле, добавленное в раздел вашего профиля.
Шаг 2. Обновите схему базы данных
Теперь, когда мы добавили новое поле в наш пользовательский интерфейс, нам также нужно добавить его в базу данных. Мы запустим команду php artisan для создания файла миграции базы данных.
php artisan make:migration add_phone_to_users --table="users"
Выполнение этой команды приведет к созданию файла миграции с помощью методов up() и down() , как показано ниже.
Затем мы добавляем наше поле телефона в метод up() следующим образом:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone')->after('email_verified_at')->nullable();
});
}
Метод up() вызывается с помощью команды php artisan migrate , и поле добавляется в таблицу базы данных, как показано на скриншоте ниже:
Нам также нужно добавить поле в метод down() для опции отката.
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('phone');
});
}
Метод down() вызывается с помощью команды php artisan migrate:откат , и поле удаляется из таблицы базы данных.
Шаг 3: Добавьте логику реализации
Логика реализации представлена в двух файлах:
- В
\app\Actions\Fortify\UpdateUserProfileInformation.phpфайл - И
\app\Models\User.phpфайл
В UpdateUserProfileInformation.php файл, нам нужно обновить две функции, update() и обновить Проверенного пользователя() .
В функции update() добавьте новое поле в двух местах, одно в массив проверки, а другое в массив для вызова функции сохранения, как показано ниже.
Другое место в том же файле – это функция обновить проверенного пользователя как показано ниже:
Далее нам нужно добавить поле телефон в заполняемый массив Пользовательской модели в app\Models\User.php файл.
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
'phone',
];
Вот и все!
Побочные примечания
- Я новичок в Laravel. Мне нравится писать на dev.to как я учусь.
- Это мой первый пост о Laravel здесь. Перед этим я написал свой вступительный пост Мой первый пост о разработчике Арифе Икбале ・ 10 июля ・ 1 минута чтения #firstpost #webdev #php #wordpress
- Благодаря @zeshan77 за просмотр моего поста в проекте штата и за то, что поделился своими бесценными отзывами.
- Мы будем признательны за ваши отзывы в разделе комментариев.
Оригинал: “https://dev.to/arifiqbal/add-new-field-to-user-profile-in-laravel-8-49ck”