laravel - 我可以将表单选择输入的值传递给验证器,但我似乎无法将数据传递到数据库中
问题描述
我可以将表单中所有其他输入的值获取到验证器中,选择选项值也是如此,但是当其他请求数据传递到数据库时,选择选项值总是为空。这是我的代码...在此先感谢
这是注册控制器
<?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© 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₦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₦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');
}
}
解决方案
您忘记在模型的 $fillable 数组中添加“特权”字段
推荐阅读
- python - 从特征图重建输入图像以进行神经风格迁移
- c++ - 定义类的静态实例
- node.js - 使用 npm pkg 为 nodejs 可执行文件构建 exe 时出错
- c - linux中的tty如何获取输入并传入程序。以及如何获取它?
- javascript - 无法从 textarea 清除文本选择
- identityserver4 - Blazor WASM IdentityServer4 注销警报
- tensorflow - AI Platform 作业以非零状态 1 退出。终止原因:错误
- amazon-web-services - Athena 将特殊字符显示为?
- sql - 匹配 SQL 上月底的值
- odoo - 单击信用票据发票odoo中的添加按钮时如何编辑操作