使用SoftDeletingTrait保存我的对象时,我的数据库字段' deleted_at'总是被设置为00:00:00'而不是NULL值。我使用的是最新的Laravel 5.0版本。
我的对象:
use Illuminate\Database\Eloquent\Model as Eloquent;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class Entity extends Eloquent{
use SoftDeletingTrait;
protected $fillable = array('title');
}
我的保存电话:
public function store(Request $request)
{
$entity = new Entity;
try{
$data = ['title' => 'Test'];
$entity->fill($data);
$entity->save();
} catch(\Exception $e) {
echo $e->getMessage();
}
}
' deleted_at'数据库中的字段DOES允许NULL值,因此不是问题。查询模型时,它不会检索记录,因为该字段不为空。我怎么能改变这个?
答案 0 :(得分:2)
默认值可能不正确。您的Schema
中设置了适当的软删除功能列,如下所示:
$table->softDeletes();
答案 1 :(得分:1)
如果您想利用Carbon
日期功能,还应手动将deleted_at列添加到日期属性中:
class Entity extends Eloquent {
use SoftDeletingTrait;
// add this line:
protected $dates = ['deleted_at'];
//
protected $fillable = array('title');
}
(Laravel的4.1-> 4.2升级文档声明您必须这样做,但显然不需要软删除功能。)
答案 2 :(得分:-1)
你有2个方法:
在数据库中将deleted_at专门设置为null(作为默认值) - > RECOMANDED
或者您可以执行$data = ['title' => 'Test', 'deleted_at' => NULL];