Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将工作下拉列表添加到我的laravel注册表中?_Php_Laravel_Drop Down Menu_Homestead - Fatal编程技术网

Php 如何将工作下拉列表添加到我的laravel注册表中?

Php 如何将工作下拉列表添加到我的laravel注册表中?,php,laravel,drop-down-menu,homestead,Php,Laravel,Drop Down Menu,Homestead,我正在尝试在我的注册表格中添加一个下拉列表,以便用户可以选择他们拥有的功能类型。例如,将有两个选项,一个是学生,他们登录后只能编辑/删除自己的内容,另一个是管理员,管理员可以编辑/删除所有内容 目前,我已成功将下拉列表添加到表单中,并显示在表单中,但当我单击“注册”时,我会收到一条错误消息,说明“角色”字段是必需的,即使我已选择了一个角色: 像这样: 角色字段已选中,当错误弹出时取消选择。 这是我的registration.blade.php文件中的代码: <div class=&quo

我正在尝试在我的注册表格中添加一个下拉列表,以便用户可以选择他们拥有的功能类型。例如,将有两个选项,一个是学生,他们登录后只能编辑/删除自己的内容,另一个是管理员,管理员可以编辑/删除所有内容

目前,我已成功将下拉列表添加到表单中,并显示在表单中,但当我单击“注册”时,我会收到一条错误消息,说明“角色”字段是必需的,即使我已选择了一个角色:

像这样:

角色字段已选中,当错误弹出时取消选择。

这是我的registration.blade.php文件中的代码:

<div class="form-group row">    
     <label for="role" class="col-md-4 col-form-label text-md-right">{{ __('Role') }}</label>
         <div class="col-sm-6">
              <select class="form-control" id="role" name="role_selected" required focus>
                  <option value="Admin"  selected>Admin</option>        
                  <option value="Student"  selected>Student</option>        
                  <option value="Select Role" disabled selected>Select Role</option>        
              </select>
         </div>
</div>
这是我在registerController和user表中的代码:

RegisterController.php:

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password'=> ['required', 'string', 'min:8', 'confirmed'],
        'role',

    ]);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'role' => $data['role'],
    ]);
}
}
我的创建用户表:

<?php

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

class CreateUsersTable extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->string('role');
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

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

在您的
选择
标记代码中,您已为
选择的
角色的
名称
这是在表单验证中验证
角色时出错的原因。
请使用以下代码进行修复:

<select class="form-control" id="role" name="role" required focus>
              <option value="Admin"  selected>Admin</option>        
              <option value="Student"  selected>Student</option>        
              <option value="Select Role" disabled selected>Select Role</option>        
          </select>

管理
学生
选择角色
刀片式锉刀


尝试这可能是它的工作

如果这对您有效,请标记为已接受@es915Side注意:允许用户选择是否作为管理员进行控制,这在设计方面不是一个明智的决定。任何用户都可以选择管理员角色,然后拥有比预期更大的访问/控制权限-想想看我知道我主要是想让下拉列表正常工作我现在收到以下错误:SQLSTATE[HY000]:一般错误:1364字段“角色”没有默认值(SQL:insert into
users
name
email
password
updated\u at
created\u at
)我找出了问题所在,我只是在user.php文件中的受保护的可填充项中添加了“role”
<select class="form-control" id="role" name="role" required focus>
              <option value="Admin"  selected>Admin</option>        
              <option value="Student"  selected>Student</option>        
              <option value="Select Role" disabled selected>Select Role</option>        
          </select>
<div class="form-group row">    
 <label for="role" class="col-md-4 col-form-label text-md-right">{{ __('Role') }}</label>
     <div class="col-sm-6">
          <select class="form-control" id="role" name="role" required focus>
              <option value="Admin">Admin</option>        
              <option value="Student">Student</option>        
              <option value="" disabled selected>Select Role</option>        
          </select>
     </div>
protected function validator(array $data)
{
return Validator::make($data, [
    'name' => ['required', 'string', 'max:255'],
    'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
    'password'=> ['required', 'string', 'min:8', 'confirmed'],
    'role' => ['required', 'string'],

]);
}