首页 > 解决方案 > 我可以将表单选择输入的值传递给验证器,但我似乎无法将数据传递到数据库中

问题描述

我可以将表单中所有其他输入的值获取到验证器中,选择选项值也是如此,但是当其他请求数据传递到数据库时,选择选项值总是为空。这是我的代码...在此先感谢

这是注册控制器

<?php

namespace App\Http\Controllers\Admin\Auth;

use App\Admin;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;

class RegisterController extends Controller
{
    /**
     * Show the login form.
     * 
     * @return \Illuminate\Http\Response
     */
    public function showRegisterForm()
    {
        return view('admin.auth.register',[
            'title' => 'Create A New Administrator On This Page.',
            'registerRoute' => 'admin.register',
        ]);
    }



    /**
     * Create a new admin instance after a valid registration.
     *
     * @param  array  $data
     * @return \App\Admin
     */
    public function create(Request $request)
    {

        $this->validate(request(),[
            'firstname' => 'required|string|max:255|alpha|min:2',
            'lastname' => 'required|string|max:255|alpha|min:2',
            'email' => 'required|string|email|max:255|unique:admins',
            'privilege' => 'required|numeric',
            'consent' => 'required',
        ]);

        $newAdminGeneratedPassword = unique_random('admins', 'password', 10);
        $admin = Admin::Create([
            'firstname' => $request['firstname'],
            'lastname' => $request['lastname'],
            'email' => $request['email'],
            'privilege' => $request['privilege'],
            'password' => Hash::make($newAdminGeneratedPassword),
        ]);

        return redirect()->to('/admin/register')->with('admincreated', 'New Administrator with Privileges Created');

    }
}

这是 HTML 表格

@extends('layouts.app')


@section('title')
OneNaira&copy;&nbsp;Register A New OneNaira Initiative Administrator
@endsection




@section('content')
<!--HOME PAGE NAVBAR-->
<div class="ui top attached pink inverted secondary menu">
    <div class="ui container">
        <div class="header item">One&#8358;aira</div>
        <a class="toc item">
            <i class="sidebar icon"></i>
        </a>
        <div class="right menu" id="large_menu">
            <a href="{{ route('admin.dashboard') }}" class="item">Create A New Agent</a>
            <a href="" class="item">Manage Existing Agents</a>
            <a href="" class="item">Manage Agent Payments</a>
            <a href="{{ route('admin.register') }}" class="active item">Create A New Administrator</a>
            <a href="" class="item">Manage Existing Administrators</a>
            <a href="{{ route('admin.logout') }}" class="item">Sign Out</a>
        </div>
    </div>
</div>
<!--SIDEBAR MENU-->
<div class="ui inverted vertical sidebar menu">
    <a href="{{ route('admin.dashboard') }}" class="item">Create A New Agent</a>
    <a href="" class="item">Manage Existing Agents</a>
    <a href="" class="item">Manage Agent Payments</a>
    <a href="{{ route('admin.register') }}" class="active yellow item">Create A New Administrator</a>
    <a href="" class="item">Manage Existing Administrators</a>
    <a href="{{ route('admin.logout') }}" class="item">Sign Out</a>
</div>


 <!--PAGE CONTAINER-->  
 <div class="ui stackable grid" id="page_container">
    <div class="sixteen wide column">
        <div class="ui container">

            @if(session('admincreated'))
                <div class="ui floating info message">
                    <i class="close icon"></i>
                    {{ session('admincreated') }}
                </div>
            @endif

            <div class="ui raised very padded segment">
                <div class="ui dividing pink header">
                    One&#8358;aira
                    <div class="sub header">{{ $title }}</div>
                </div>


                <form action="{{ route($registerRoute) }}" class="ui form" method="POST">

                {{ csrf_field() }}

                    <div class="field">
                        <label>{{ __('Name:') }}</label>
                        <div class="two fields">
                            <div class="field">
                                <input type="text" name="firstname" placeholder="First" value="{{ old('firstname') }}" required autofocus>

                                @if ($errors->has('firstname'))
                                    <div class="ui negative message">
                                        <p>
                                        {{ $errors->first('firstname') }}
                                        </p>
                                    </div>
                                @endif

                            </div>
                            <div class="field">
                                <input type="text" name="lastname" placeholder="Last" value="{{ old('lastname') }}" required autofocus>

                                @if ($errors->has('lastname'))
                                    <div class="ui negative message">
                                        <p>
                                        {{ $errors->first('lastname') }}
                                        </p>
                                    </div>
                                @endif

                            </div>
                        </div>
                    </div>
                    <div class="field">
                        <label>{{ __('E-mail:') }}</label>
                        <input type="email" name="email" id="email" placeholder="Please Enter A Valid Email Address" value="{{ old('email') }}" required>

                        @if ($errors->has('email'))
                            <div class="ui negative message">
                                <p>
                                {{ $errors->first('email') }}
                                </p>
                            </div>
                        @endif

                    </div>
                    <div class="disabled field">
                        <label>{{ __('Password:') }}</label>
                        <input type="password" name="password" id="password" placeholder="This Password will be Automatically Generated" required value="1234567890">

                        @if ($errors->has('password'))
                            <div class="ui negative message">
                                <p>
                                {{ $errors->first('password') }}
                                </p>
                            </div>
                        @endif

                    </div>
                    <div class="disabled field">
                        <label>{{ __('Verify Password:') }}</label>
                        <input type="password" name="password_confirmation" id="password-confirm" placeholder="This Password will be Automatically Generated" required value="1234567890">
                    </div>
                    <div class="field">
                        <label>{{ __('Privilege:') }}</label>
                        <select class="ui dropdown" name="privilege">
                            <option value="">Privilege</option>
                            <option value="2">Administrator</option>
                            <option value="1">Super Administrator</option>
                            <option value="0">Root Administrator</option>
                        </select>

                        @if ($errors->has('privilege'))
                            <div class="ui negative message">
                                <p>
                                {{ $errors->first('privilege') }}
                                </p>
                            </div>
                        @endif

                    </div>
                    <div class="field">
                        <div class="ui checkbox">
                            <input type="checkbox" name="consent" id="consent" tabindex="0" class="hidden" required>
                            <label>{{ __('I Consent To Creating This Administrator and Granting the Delegated Privileges') }}</label>

                            @if ($errors->has('consent'))
                                <div class="ui negative message">
                                    <p>
                                    {{ $errors->first('consent') }}
                                    </p>
                                </div>
                            @endif

                        </div>
                    </div>
                    <button class="ui pink button" type="submit">{{ __('Create Administrator') }}</button>
                </form>
                <div class="ui divider"></div>

            </div>
        </div>
    </div>
</div>
<div class="push-50"></div>
@endsection




@section('footer')
<!--FOOTER-->
<div class="ui stackable pink inverted secondary pointing menu" id="footer">
    <div class="ui container">
        <a class="item">© OneNaira, 2019.</a>
        <div class="right menu">
            <a class="item">
                <script>
                    var todaysDate = new Date();
                    document.write(todaysDate);
                </script>
            </a>
        </div>
    </div>
</div>
@endsection

这是我的路线

<?php

use Illuminate\Support\Facades\Input;
use App\Grant;
use App\Slot;
use App\Events\ProgressUpdaterEvent;


/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

//Index Route
Route::get('/', function () {
    return view('index');
});

//Auth Verify Locking Routes
Auth::routes(['verify' => true]);

//Page Routes
Route::get('/checkgrants', 'GrantController@index')->middleware('auth');
Route::get('/dashboard', 'HomeController@index')->name('dashboard')->middleware('auth')->middleware('verified');
Route::view('/accountsettings', 'accountsettings')->middleware('auth');
Route::get('/wallet', 'WalletController@index')->middleware('auth');
Route::view('/faq', 'faq');
Route::view('/policy', 'policy');

// Log Out Routes
Route::get('/logout', function(){Auth::logout(); return Redirect::to("/login")->with('message', 'You have been successfully logged out');});



//Grant Search Route
Route::any('/searchgrant', function() {
    $q = Input::get ('grant_id');
    $grant = Grant::where('gid', $q)->get();
    if (count($grant) > 0)
    {
        return view('checkgrants')->withDetails($grant)->withQuery($q);
    }
    else {
        return Redirect::back()->with('status', 'Grant Not Found !. It might be found the next time you try');
    }
});


//Route User Edit and Update Route
Route::resource('users', 'UserController');

//Route For SLOT Reservation
Route::resource('slots', 'SlotController');

// Laravel 5.1.17 and above for paystack
Route::post('/pay', 'PaymentController@redirectToGateway')->name('pay'); 
Route::get('/payment/callback', 'PaymentController@handleGatewayCallback');

//Route For Pusher Testing
Route::get('event', function(){
    $slotallcount = Slot::all()->count();
    event(new ProgressUpdaterEvent($slotallcount));
});

// Admin Grouped Routes
Route::prefix('/admin')->name('admin.')->namespace('Admin')->group(function(){
    Route::namespace('Auth')->group(function(){
        //Login Routes
        Route::get('/login','LoginController@showLoginForm')->name('login');
        Route::post('/login','LoginController@login');
        Route::get('/logout','LoginController@logout')->name('logout');

        //Register Routes
        Route::get('/register', 'RegisterController@showRegisterForm')->name('register');
        Route::post('/register', 'RegisterController@create');

        //Forgot Password Routes
        Route::get('/password/reset','ForgotPasswordController@showLinkRequestForm')->name('password.request');
        Route::post('/password/email','ForgotPasswordController@sendResetLinkEmail')->name('password.email');

        //Reset Password Routes
        Route::get('/password/reset/{token}','ResetPasswordController@showResetForm')->name('password.reset');
        Route::post('/password/reset','ResetPasswordController@reset')->name('password.update');

    });

    //Route For Administrator Dashboard Points Directly To Create Agent Page
    Route::get('/dashboard', 'HomeController@index')->name('dashboard');


});

这是我的迁移,请帮忙

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateAdminsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('admins', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('firstname', 100);
            $table->string('lastname', 100);
            $table->smallInteger('privilege');
            $table->string('email')->unique();
            $table->string('password', 255);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('admins');
    }
}

标签: laravel

解决方案


您忘记在模型的 $fillable 数组中添加“特权”字段


推荐阅读