некоторые данные не могут быть вставлены в базу данных - PullRequest
0 голосов
/ 04 марта 2019

Когда новый пользователь заполняет регистрационную форму и нажимает «Отправить», я могу получить все необходимые данные, используя dd ($ var).Но при вставке в базу данных laravel говорит Невозможно вставить значение NULL в столбец «пароль» .Почему laravel не получил мой пароль при вставке в базу данных?

Я понятия не имею, что я здесь не так сделал.помогите мне ..

это мой RegisterController.php

protected function create(array $data)
{
    $pw_hash     = Hash::make($data['Password']);
    $uuid4       = Uuid::uuid4();


    $a = DB::table('Person.Person')->insert(array(
        'PersonId'      => $uuid4->toString(),
        'PersonName'    => $data['PersonName'],
        'Email'         => $data['Email'],
        'IsActive'      => false,
        'IsLoginActive' => false,
        'PasswordSalt'  => substr($pw_hash, 7, 22),
        'PasswordHash'  => sha1($pw_inpt.''.$pw_salt),
        'IsMale'        => $data['IsMale'],
        'Email'         => $data['Email'],
        'Phone'         => $data['Phone'],
        'LoginName'     => $data['Email'],
        'PersonName'    => $data["NamaDepan"]." ".$data['NamaBelakang'],
        'EmailVerifiedAt'   => date('Y-m-d'),
        'EmailVerified'     => false,
        'EmailVerificationCode'=> Hash::make(rand(0,100)),
        'password'=> 'aaaapass',
    ));

    dd($a);
}

и это мой User.php Модель

class User extends Authenticatable{
use Notifiable;

protected $table        = 'Person.Person';
// protected $username     = 'Email';

public $incrementing    = false;
protected $primaryKey   = 'PersonId';

const CREATED_AT = 'CreatedDate';
const UPDATED_AT = 'ModifiedDate';

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'PersonId',
    'Email',
    'Phone',
    'IsMale',
    'password',
    'IsActive',
    'Position',
    'LoginName',
    'kencur',
    'ClusterId',
    'BirthDate',
    'BirthPlace',
    'PersonName',
    'PersonImage',
    'PasswordSalt',
    'PasswordHash',
    'ModifiedDate',
    'IsLoginActive',
    'EmailVerified',
    'WhatsappNumber',
    'EmailVerifiedAt',
    'EmailVerificationCode',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password',
    'PasswordHash',
    'PasswordSalt',
    'remember_token',
];

public function getEmailForPasswordReset() {
    return $this->Email;
} 
}

и вот что говорит Laravel:

Cannot insert the value NULL into column 'password', table 'Assess2.Person.Person'; column does not allow nulls. INSERT fails. (SQL: insert into [Person].[Person] ([PersonId], [PersonName], [Email], [IsActive], [IsLoginActive], [PasswordSalt], [PasswordHash], [IsMale], [Phone], [LoginName], [EmailVerifiedAt], [EmailVerified], [EmailVerificationCode], [password]) values (f6377aeb-df36-4f38-aef5-40c7a2240cc5, has sutenan, namadcvbepan@gmail.com, 0, 0, CTDdYYCXHULY4ad8jQJ9WO, $2y$10$CTDdYYCXHULY4ad8jQJ9WOmVqCILEuJPHSgffLlVW5SK7b7Q4qMpy, true, 55, namadcvbepan@gmail.com, 2019-03-04, 0, $2y$10$vcHlXQgukHomPI.FJZe2XOyl0lJd3Lo5rDqVN5SU8gY3UloPLsr.C, aaaapass))

я использую Laravel 5.7.спасибо

1 Ответ

0 голосов
/ 04 марта 2019

ПАРОЛЬ - зарезервированное ключевое слово базы данных.Попробуйте переименовать этот столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...