Рубрики
Uncategorized

Добавить новое поле в профиль пользователя в Laravel 8

Примечание: Для этой статьи, я полагаю, вы уже установили свежую копию Laravel 8 с… С тегами laravel, jetstream, инерция, php.

Примечание: Для этой статьи, я полагаю, вы уже установили свежую копию 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: Добавьте логику реализации

Логика реализации представлена в двух файлах:

  1. В \app\Actions\Fortify\UpdateUserProfileInformation.php файл
  2. И \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”