如何为所有模型启用softDelete而不必在每个模型中指定以下内容?:
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class ListItem extends Eloquent
{
use SoftDeletingTrait;
protected $table = 'list_items';
protected $dates = ['deleted_at'];
public function product(){
return $this->hasOne('Product');
}
}
答案 0 :(得分:0)
如果我是你,我会使用基类。让你的所有模型扩展一个类,反过来,扩展Eloquent。然后,您可以将影响所有模型的任何内容放在基类中。
答案 1 :(得分:0)
只需创建一个BaseModel
课程。这让您可以在多个模型中共享所有类型的功能和配置:
class BaseModel extends Eloquent {
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
}
然后让你的模型扩展该类
class ListItem extends BaseModel {
public function product(){
return $this->hasOne('Product');
}
}
顺便说一句,list_items
已经是传统的表名(snake_case和复数),因此您不必明确指定它。