【问题标题】:Mysql not accepting form input Laravel 5.2Mysql不接受表单输入Laravel 5.2
【发布时间】:2016-10-05 00:50:02
【问题描述】:

PHP 和 Laravel 5.2 的新手。我使用 php artisan make:auth 创建了一个用户表,但想在我的数据库中再添加两列。我能够在数据库中添加列,但是当我注册新用户时,它接受除了 mysql 中的 first_name 和 last_name 之外的所有内容,这些都是空白的。我不明白我错过了什么?

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('first_name');
        $table->string('last_name');
        $table->string('email')->unique();
        $table->string('avatar')->default('default.jpg');
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
        });

我的 AuthController 文件

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


protected function create(array $data)
{
    return User::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);

register.blade 上 first_name 的表单输入示例

<div class="form-group{{ $errors->has('first_name') ? ' has-error' : '' }}">
                        <label class="col-md-4 control-label">First Name</label>

                        <div class="col-md-6">
                            <input type="text" class="form-control" name="first_name" value="{{ old('first_name') }}">

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

【问题讨论】:

  • 您是否已将first_namelast_name 添加到User 模型中的可填充数组?
  • 不,我忘了这样做。我会检查一下并回复你
  • 成功了!谢谢希德

标签: php mysql laravel


【解决方案1】:

正如@Sid 所说,这些字段需要是可批量分配的,文档中对此进行了描述:

您也可以使用 create 方法将新模型保存在单个 线。 [...] 在这样做之前,您需要在模型上指定一个可填充或受保护的属性,因为所有 Eloquent 模型都可以防止批量赋值。

来自https://laravel.com/docs/5.2/eloquent#mass-assignment

class Flight extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name'];
}

【讨论】:

  • 我也试试这个,谢谢建议。
猜你喜欢
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 2016-03-09
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多