3
當我嘗試保存丟失屬性的非空數據庫領域的典範,我不想讓應用程序能夠緘默,我希望它尖叫靜脈。但對於雄辯節省的空字符串來說,情況還是不錯的。雄辯節省缺少的屬性爲空字符串,而不是空值
爲什麼MyModel::create([])
成功?
當我嘗試保存丟失屬性的非空數據庫領域的典範,我不想讓應用程序能夠緘默,我希望它尖叫靜脈。但對於雄辯節省的空字符串來說,情況還是不錯的。雄辯節省缺少的屬性爲空字符串,而不是空值
爲什麼MyModel::create([])
成功?
class BaseModel extends Eloquent {
public static function boot()
{
parent::boot();
static::creating(function($model) {
static::setNullWhenEmpty($model);
return true;
});
}
private static function setNullWhenEmpty($model)
{
foreach ($model->toArray() as $name => $value) {
if (empty($value)) {
$model->{$name} = null;
}
}
}
}
信用:Set fields to null instead of empty value to avoid problems with nullable foreign keys
保存之前對其進行驗證。 –
這就是應用程序級別的保證,我希望數據庫在數據完整性方面也能保持一致。 – Birowsky
如果'Laravel'轉換遺漏值爲空字符串,然後數據庫將允許它,因爲空是不是'null'。 –