How to add dynamic dropdown list column on Laravel 5.3 registration?

烈酒焚心 提交于 2019-11-26 10:00:58

问题


I want to create a dropdown list where the data retrieved from the database, ie dropdown level. the value of the dropdown level is taken from the table level.

My register controller is like this :

<?php

namespace App\\Http\\Controllers\\Auth;

use App\\User;
use Validator;
use App\\Http\\Controllers\\Controller;
use Illuminate\\Foundation\\Auth\\RegistersUsers;

class RegisterController extends Controller
{
    use RegistersUsers;

    protected $redirectTo = \'/home\';

    public function __construct()
    {
        $this->middleware(\'guest\');
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [
            \'name\' => \'required|max:255\',
            \'username\' => \'required|unique:users\',
            \'email\' => \'required|email|max:255|unique:users\',
            \'password\' => \'required|min:6|confirmed\',
        ]);
    }

    protected function create(array $data)
    {
        return User::create([
            \'name\' => $data[\'name\'],
            \'username\' => $data[\'username\'],
            \'email\' => $data[\'email\'],
            \'password\' => bcrypt($data[\'password\']),
        ]);
    }
}

My registerusers(vendor) is like this :

<?php

namespace Illuminate\\Foundation\\Auth;

use Illuminate\\Http\\Request;
use Illuminate\\Support\\Facades\\Auth;
use Illuminate\\Auth\\Events\\Registered;

trait RegistersUsers
{
    use RedirectsUsers;

    public function showRegistrationForm()
    {
        return view(\'auth.register\');
    }

    public function register(Request $request)
    {
        $this->validator($request->all())->validate();

        event(new Registered($user = $this->create($request->all())));

        $this->guard()->login($user);

        return redirect($this->redirectPath());
    }

    protected function guard()
    {
        return Auth::guard();
    }
}

My register view is like this :

<form method=\"post\" action=\"{{ url(\'/register\') }}\">

    {!! csrf_field() !!}

    <div class=\"form-group has-feedback{{ $errors->has(\'name\') ? \' has-error\' : \'\' }}\">
        <input type=\"text\" class=\"form-control\" name=\"name\" value=\"{{ old(\'name\') }}\" placeholder=\"Full Name\">
        <span class=\"glyphicon glyphicon-user form-control-feedback\"></span>

        @if ($errors->has(\'name\'))
            <span class=\"help-block\">
                <strong>{{ $errors->first(\'name\') }}</strong>
            </span>
        @endif
    </div>

    <div class=\"form-group has-feedback{{ $errors->has(\'email\') ? \' has-error\' : \'\' }}\">
        <input type=\"email\" class=\"form-control\" name=\"email\" value=\"{{ old(\'email\') }}\" placeholder=\"Email\">
        <span class=\"glyphicon glyphicon-envelope form-control-feedback\"></span>

        @if ($errors->has(\'email\'))
            <span class=\"help-block\">
                <strong>{{ $errors->first(\'email\') }}</strong>
            </span>
        @endif
    </div>

    <div class=\"form-group has-feedback{{ $errors->has(\'password\') ? \' has-error\' : \'\' }}\">
        <input type=\"password\" class=\"form-control\" name=\"password\" placeholder=\"Password\">
        <span class=\"glyphicon glyphicon-lock form-control-feedback\"></span>

        @if ($errors->has(\'password\'))
            <span class=\"help-block\">
                <strong>{{ $errors->first(\'password\') }}</strong>
            </span>
        @endif
    </div>

    <div class=\"form-group has-feedback{{ $errors->has(\'password_confirmation\') ? \' has-error\' : \'\' }}\">
        <input type=\"password\" name=\"password_confirmation\" class=\"form-control\" placeholder=\"Confirm password\">
        <span class=\"glyphicon glyphicon-lock form-control-feedback\"></span>

        @if ($errors->has(\'password_confirmation\'))
            <span class=\"help-block\">
                <strong>{{ $errors->first(\'password_confirmation\') }}</strong>
            </span>
        @endif
    </div>

    <div class=\"row\">
        <div class=\"col-xs-8\">
            <div class=\"checkbox icheck\">
                <label>
                    <input type=\"checkbox\"> I agree to the <a href=\"#\">terms</a>
                </label>
            </div>
        </div>
        <!-- /.col -->
        <div class=\"col-xs-4\">
            <button type=\"submit\" class=\"btn btn-primary btn-block btn-flat\">Register</button>
        </div>
        <!-- /.col -->
    </div>
</form>

I get the code : https://github.com/InfyOmLabs/adminlte-generator/tree/5.3

of the code, it appears that a register view in the call of registerusers (vendor)

how to call a table in the database to be stored in variables and sent to view the register?

if I had to edit registerusers (vendor)?

How to?


回答1:


If I understood you correctly, you need to override showRegistrationForm() method. So, copy-paste this method from vendor to RegisterController and work with it there:

public function showRegistrationForm()
{
    // Do something here.

    return view('auth.register');
}

Also, do not make any changes in vendor directory.




回答2:


You should not write any code in vendor's file, rather than you may use service injection or view composers to serve your purpose.



来源:https://stackoverflow.com/questions/41047583/how-to-add-dynamic-dropdown-list-column-on-laravel-5-3-registration

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!