【问题标题】:Laravel laravel-users add fields to CRUD formsLaravel laravel-users 向 CRUD 表单添加字段
【发布时间】:2019-07-18 01:26:38
【问题描述】:

我正在使用 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 处理的。如何覆盖它以便我可以让它存储我添加的新字段?

【问题讨论】:

    标签: php laravel laravel-5 user-management


    【解决方案1】:

    没有详细阅读完整的解释(因为我目前在目前的网站上几乎没有什么名声,只是发布一些 cmets 来澄清问题,而不是尝试回答......) 这是一些建议;)

    您可能需要进入 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

    如果没有控制器,您应该创建一个并确保将其添加到:

    路由/web.php

    希望对你有帮助

    【讨论】:

    • 感谢您的回答。似乎不是在 app/Http/Controllers 的应用程序代码中生成控制器,而是使用 /vendor/ 目录中的控制器,显然无法编辑 - 这就是我被卡住的原因
    • 不客气。在这种情况下,您可能希望创建一个新控制器来控制新路由以更新必填字段并将表单数据发送到新路由。可以制作新控制器来扩展原始控制器,但这取决于您的编码偏好以及您计划如何使用新控制器。
    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2013-06-21
    • 2015-11-13
    • 2016-11-01
    相关资源
    最近更新 更多