1

我试图不保存具有null价值的雄辩的数据库模型。我的迁移文件中有这个:

$table->increments('id')->unique();
$table->string('name', 255)->unique();
$table->string('email', 255)->unique();
$table->string('password', 64);
$table->timestamps();

Schema 文档说默认值为NOT NULL,但->nullable()您可以允许空值,太酷了!所以我的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。

4

1 回答 1

1

Taylor Otwell,最近表示此错误已得到修复。以前我在 Github 上提过 issue,现在你可以看到 Otwell 的回答:

我相信这已经解决了。

https://github.com/laravel/framework/issues/2120#issuecomment-25551048

于 2013-10-02T16:02:38.710 回答