简体   繁体   English

Laravel注册错误与UNKnown字段

[英]Laravel Registration ERROR With UNKnown Field

the script returns an error that i don't think i included in my code. 该脚本返回一个错误,我不认为我包含在我的代码中。

    SQLSTATE[HY000]: General error: 1364 Field 'phone' doesn't have a default 
value (SQL: insert into `users` (`name`, `email`, `location`, `password`, 
`steps`, `incubation_days`, `updated_at`, `created_at`) values (ilamini 
Ayebatonye Dagogo, dagogo@gmail.com, Uniben Road, Ugbowo, Benin City, Nigeria, 
$2y$10$aoJRS61Bn/q1eNcUFALjne8erLXD11y1.OmHhurlQJDrex73DPWJW, settings, 8, 
2017-03-01 14:11:54, 2017-03-01 14:11:54))

Can someone point me to where this phone field is coming from. 有人能指出我这个手机领域的来源。 Below my Register Controller Class. 在我的注册控制器类下面。

<?php

namespace App\Http\Controllers\Auth;

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

class RegisterController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Register Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users as well as their
    | validation and creation. By default this controller uses a trait to
    | provide this functionality without requiring any additional code.
    |
    */

    use RegistersUsers;

    /**
     * Where to redirect users after registration.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'location'  => 'required|min:5',
            'name'      => 'required|max:255',
            'password'  => 'required|min:6|confirmed',
            'email'     => 'required|email|max:255',
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {

    $phDay = rand(2,8);
       $user = User::create([
            'name'              => $data['name'],
            'email'             => $data['email'],
            'location'          => $data['location'],
            'password'          => bcrypt($data['password']),
            'steps'             => 'settings',
            'incubation_days'   => $phDay
        ]);

       paring_by_location::create([
            'name'      => $data['name'],
            'email'     => $data['email'],
            'location'  => $data['location'],
        ]);

      event(new \App\Events\UserReferred(request()->cookie('ref'), $user));

        return $user;
    }
}

and Below is my HomeController that i think may be Interfering with the Register Controller. 以下是我的HomeController,我认为可能会干扰寄存器控制器。

public function AccountSettings(Request $request)
    {
        $id = Auth::user()->id;

        $user = User::findOrFail($id);

        $this->validate($request, [
            'account_name'      => 'required|string|min:5',
            'account_number'    => 'required|digits:10',
            'bank_name'         => 'required|string|min:3',
            'phone'             => 'required|digits:11'
        ]);

        $input = $request->all();
        $user->update(array('steps' => 'notification'));

        $update = $user->fill($input)->save(); 





        return redirect()->route('home');

    }  

also is my USER MODEL TAHT has the protected field 也是我的用户模型TAHT有受保护的领域

 protected $fillable = [
        'name', 'email', 'password', 'location','steps','incubation_days','phone','bank_name','account_name','account_number',
    ];

So I want to understand why it is returning an error when i did not include the phone in the register controller 所以我想理解为什么当我没有将电话包含在寄存器控制器中时它返回错误

You should set nullable() or default() value for the phone field. 您应该为phone字段设置nullable()default()值。 It should look like this in migration for users table: users表的迁移中它应该如下所示:

$table->string('phone')->nullable();

Or make the phone field required: 或者phone领域:

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

And add it to create() method: 并将其添加到create()方法:

create([
    'name'      => $data['name'],
    'email'     => $data['email'],
    'location'  => $data['location'],
    'phone'     => $data['phone']
]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM