根据此问题:Is it possible to perform "future" soft delete in laravel? 可以在laravel 5.6中使用吗?并且,如果可以,我在哪里可以创建特征
我尝试在app \ Traits \中创建特征,但是当我在模型中调用时,总是说没有找到Trait'App \ Traits \ MySoftDeletingTrait'
我在app \ Traits中创建了2个文件 -MySoftDeletingScope.php
namespace App\Traits;
class MySoftDeletingScope extends Illuminate\Database\Eloquent\SoftDeletingScope {
public function apply(Builder $builder)
{
$model = $builder->getModel();
$builder->where($model->getQualifiedDeletedAtColumn(), '<=', Carbon::now());
$this->extend($builder);
}
}
the 2nd one MySoftDeleteingTrait.php
namespace App\Traits;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
trait MySoftDeletingTrait {
public static function bootSoftDeletingTrait()
{
static::addGlobalScope(new MySoftDeletingScope);
}
}
在Uer php中,我打电话
使用App \ Traits \ MySoftDeletingTrait; 使用Notifiable,HasRoles,MySoftDeletingTrait;
答案 0 :(得分:0)
您需要双重指定您使用的特征。首先,在文件开头的类定义之外包括:
use App\Traits\MySoftDeletingTrait;
,然后在课程内部:
use Notifiable, HasRoles, MySoftDeletingTrait;