2017-09-23 3 views
0

私はLaravel 5.5でGraphQL APIを構築しています。私は間違いなく「パスワード」列の値を提供しません。これはUser::create()から完全なメッセージです:Laravel:パスワードが間違って提供されていても、「列のヌル値がパスワードではない」パスワードが「無効」になります

SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column \"password\" violates not-null constraint 
DETAIL: Failing row contains (507, null, null, 2017-09-23 14:12:11, 2017-09-23 14:12:11, 658495, 56854685, Joe, Appleseed, royal, 1970-01-01, +31684736248, null, Poplar St, 14a, 1012AB, London, null, [email protected], [email protected], null). (SQL: insert into \"users\" (\"wid\", \"unumber\", \"first_name\", \"last_name\", \"civil_status\", \"birthdate\", \"phone_number\", \"street\", \"street_number\", \"postal_code\", \"city\", \"email_address_overwatch\", \"email_address_mindef\", \"updated_at\", \"created_at\") values (658495, 56854685, Joe, Appleseed, royal, 1970-01-01, +31684736248, Poplar St, 14a, 1012AB, London, [email protected], [email protected], 2017-09-23 14:12:11, 2017-09-23 14:12:11) returning \"id\") 

そして、ここではそれを生成するコードは、私のUserRepositoryの内側に、次のとおりです。

/** 
* Creates a new User with $data 
* 
* @param array $data 
* @return User 
*/ 
public function create(array $data): User 
{ 
    $data['password'] = bcrypt($data['password']); 
    $user = User::create($data); 
    $this->log(Auth::user(), $user, 'created'); 

    return $user; 
} 

私は間違いのために価値を提供していますように私は、これは非常に奇妙見つけますパスワード。私はdd($data)を使用してそれを見ることができます(右のあなたが見ることができるように$data['password'] = bcrypt($data'password');

array:15 [ 
    \"wid\" => \"658495\" 
    \"unumber\" => \"56854685\" 
    \"first_name\" => \"Joe\" 
    \"last_name\" => \"Appleseed\" 
    \"civil_status\" => \"royal\" 
    \"birthdate\" => \"1970-01-01\" 
    \"phone_number\" => \"+31684736248\" 
    \"street\" => \"Poplar St\" 
    \"street_number\" => \"14a\" 
    \"postal_code\" => \"1012AB\" 
    \"city\" => \"London\" 
    \"email\" => \"[email protected]\" 
    \"email_address_overwatch\" => \"[email protected]\" 
    \"email_address_mindef\" => \"[email protected]\" 
    \"password\" => \"$2y$10$FdLbx/dYkdrjhGNcuCWKkO.bg013Gn0mhs7nKN.nyNztlykWx4jDC\" 
] 

の下で、この配列のpasswordフィールドは間違いありどのように私はこのエラーが出ることも可能である

いくつかの環境。?情報:私はパスワードを推測している

PHP 7.1.9-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Sep 2 2017 05:56:43) (NTS) 
psql (PostgreSQL) 9.5.8 
Laravel Framework 5.5.2 
+0

あなたは 'ハッシュを使用してはいけません::'($データ[ 'パスワードを'])作りますか? –

+0

@lawrencecherone私はそうは思わない。標準laravelの認証足場が –

答えて

2

mass assignableではありません、あなたのユーザーモデルでは:。

protected $fillable = [.... other fields ..., 'password']; 
+0

bcryptの使用私は、デフォルトの認証足場だこと –

+0

もそう思ったが、https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.phpをチェックアウト'create()'も使います –

関連する問題