ggmm-one/model-helpers-for-laravel

该包已被弃用且不再维护。未建议替代包。

一套用于构建Laravel应用程序的辅助工具,让开发更快

v1.6.0 2020-12-24 05:52 UTC

This package is auto-updated.

Last update: 2023-01-28 23:57:20 UTC


README

一套用于构建Laravel应用程序的辅助工具,让开发更快

CascadeSoftDeletes

如果你有一个类似以下类

class User extends Model
{
    use SoftDeletes;

    public function posts()
    {
        return $this->hasMany('App\Posts');
    }
}

你可以修改为

use Ggmm\Model\CascadeSoftDeletes;

class User extends Model
{
    use CascadeSoftDeletes;

    protected $cascadeDelete = ['posts'];

    public function posts()
    {
        return $this->hasMany('App\Posts');
    }
}

现在每次你软删除一个用户时,所有相关的帖子也会被删除。

一些注意事项

  • 在删除调用中包装事务是个好主意;
  • 所有要级联删除的模型都必须使用SoftDelete或CascadeSoftDelete;
  • 如果你使用forceDelete,则不会发生级联。为此请使用标准数据库功能;
  • 它不支持级联恢复。但由于所有模型都使用相同的deleted_at时间保存,你可以根据deleted_at值查询数据库并恢复这些项目。(将在下一个版本中完成)

HasModelDisplayName

添加了getModelDisplayName()函数。

默认名称是类名。例如:类"ArticlePost";显示名称"Article Post"。

你可以通过使用名为modelDisplayName的变量来覆盖名称。

class ArticlePost
{
    protected $modelDisplayName = 'Magazine Post';
}

HasOrder

创建一个基于你设置的hasOrder变量的排序范围。

use Ggmm\Model\HasOrder;

class Post extends Model {
    use HasOrder;

    protected $hasOrder = ['created_at' => 'desc', 'title'];
}

//You can then do things like
Post::ordered()->get();