Laravel 全局软删除
Laravel global softdelete
如何为我的所有模型启用 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');
}
}
如果我是你,我会使用碱基 class。让您的所有模型都扩展 class,进而扩展 Eloquent。然后,您可以将影响所有模型的任何内容放入基础 class.
只需创建一个BaseModel
class。这让您可以在多个模型之间共享所有类型的功能和配置:
class BaseModel extends Eloquent {
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
}
然后让您的模型扩展 class
class ListItem extends BaseModel {
public function product(){
return $this->hasOne('Product');
}
}
顺便说一下,list_items
已经是常规的 table 名称(snake_case 和复数),因此您不必明确指定它。
如何为我的所有模型启用 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');
}
}
如果我是你,我会使用碱基 class。让您的所有模型都扩展 class,进而扩展 Eloquent。然后,您可以将影响所有模型的任何内容放入基础 class.
只需创建一个BaseModel
class。这让您可以在多个模型之间共享所有类型的功能和配置:
class BaseModel extends Eloquent {
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
}
然后让您的模型扩展 class
class ListItem extends BaseModel {
public function product(){
return $this->hasOne('Product');
}
}
顺便说一下,list_items
已经是常规的 table 名称(snake_case 和复数),因此您不必明确指定它。