Laravel laravel-users добавляет поля в формы CRUD - PullRequest
0 голосов
/ 24 февраля 2019

Я использую пакет laravel-users для добавления функциональности управления пользователями в мое приложение Laravel 5.7, но я изо всех сил пытаюсь выяснить, как добавить дополнительные поля в формы создания пользователя / редактирования пользователя, чтобы они соответствовали моей пользовательской таблицесхема.

Определение таблицы пользователей:

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->string('phone_number', 13);
        $table->boolean('is_super_admin')->default(false);
        $table->rememberToken();
        $table->timestamps();
    });

В частности, я хочу добавить поле phone_number в формы.Я обновил шаблон лезвия, добавив в разметку для поля:

                <div class="form-group has-feedback row {{ $errors->has('phone_number') ? ' has-error ' : '' }}">
                    @if(config('laravelusers.fontAwesomeEnabled'))
                        {!! Form::label('phone_number', __('auth.phone_number'), array('class' => 'col-md-3 control-label')); !!}
                    @endif
                    <div class="col-md-9">
                        <div class="input-group">
                            {!! Form::text('phone_number', NULL, array('id' => 'phone_number', 'class' => 'form-control', 'placeholder' => __('auth.phone_number'))) !!}
                            <div class="input-group-append">
                                <label class="input-group-text" for="phone_number">
                                    @if(config('laravelusers.fontAwesomeEnabled'))
                                        <i class="fa fa-fw {!! __('laravelusers::forms.create_user_icon_username') !!}" aria-hidden="true"></i>
                                    @else
                                        {!! __('auth.phone_number') !!}
                                    @endif
                                </label>
                            </div>
                        </div>
                        @if ($errors->has('phone_number'))
                            <span class="help-block">
                                    <strong>{{ $errors->first('phone_number') }}</strong>
                                </span>
                        @endif
                    </div>
                </div>

Но похоже, что фактическое создание пользователя обрабатывается UsersManagementController, который является частью самого пакета.Как я могу переопределить это, чтобы сохранить новое добавленное поле?

1 Ответ

0 голосов
/ 24 февраля 2019

Не читая подробно полное объяснение (поскольку в настоящее время у меня мало репутации на настоящем веб-сайте, чтобы просто опубликовать несколько комментариев, чтобы прояснить вопрос, а не пытаться ответить ...), вот несколько советов;)

Возможно, вам нужно зайти в UsersManagementController и отредактировать функцию обновления , чтобы разрешить сохранение вновь добавленного поля "phone_number".

Скорее всего, ваш контроллер будет расположен в:

app / Http / Controllers / UsersManagementController.php

будет выглядеть функция, которую нужно отредактироватьчто-то вроде этого

public function update(Request $request, $id) {

// Find the User that needs to be updated
$user = Post::find($id);
$user->phone_number = $request->input('phone_number');
//... some more code here
$user->save();

return //whatever is returned here... potentially redirected
}

Чтобы найти весь список маршрутов, на случай, если это проблема, и последовательно адаптировать сообщение формы для отправки данных на правильный контроллер (в этом списке будет отображаться все, что вы в данный момент управлялимаршруты) :
php artisan route:list

Если контроллера нет, вы должны создать его и обязательно добавить в:

route / web.php

Надеюсь, это поможет

...