値を持つ雄弁なデータベースモデルを保存しないようにしていnull
ます。移行ファイルにこれがあります:
$table->increments('id')->unique();
$table->string('name', 255)->unique();
$table->string('email', 255)->unique();
$table->string('password', 64);
$table->timestamps();
スキーマのドキュメントには、デフォルト値はNOT NULL
であると書かれてい->nullable()
ますが、null 値を許可できます。したがって、私のUser
モデル セットの電子メール メソッドは次のようになります。
public function setEmailAttribute( $value )
{
if ( filter_var( $value, FILTER_VALIDATE_EMAIL ) )
{
$this->attributes['email'] = strtolower( $value );
}
else
{
return false;
}
}
しかし今、私の TestClass では、彼はメールアドレスを設定せずにモデルを保存しています!?!
$userSave3 = new User;
$userSave3->setNameAttribute('wrongUser');
$this->assertEquals( false, $userSave3->setEmailAttribute('wrongemail') );
$userSave3->setPasswordAttribute('password');
// Failed asserting that true matches expected false.
$this->assertEquals( false, $userSave3->save() );
NOT NULL
では、データ制約を追加するにはどうすればよいでしょうか? 開発モードで SQLite を使用しています。