| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | <?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\SoftDeletes;use Encore\Admin\Traits\ModelTree;use Encore\Admin\Traits\AdminBuilder;//use Encore\Admin\Auth\Database\Role;use Illuminate\Database\Eloquent\Relations\BelongsToMany;use Encore\Admin\Facades\Admin;use Illuminate\Foundation\Auth\User;use App\Models\ArticleCategoryRole;use App\Models\Role;/** * App\Models\ArticleCategory * * @property int $id * @property string $category_name 分类名称 * @property int $parent_id 分类父id * @property int $list_order 排序 * @property string|null $title 标题 * @property string|null $keywords 关键字 * @property string|null $description 描述 * @property int $admin_set 是否为系统自带(1是0否) * @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $updated_at * @property string|null $deleted_at * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ArticleCategory[] $children * @property-read \App\Models\ArticleCategory $parent * @property-read \Illuminate\Database\Eloquent\Collection|\Encore\Admin\Auth\Database\Role[] $roles * @method static bool|null forceDelete() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory newQuery() * @method static \Illuminate\Database\Query\Builder|\App\Models\ArticleCategory onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory query() * @method static bool|null restore() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereAdminSet($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereCategoryName($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereDeletedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereDescription($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereKeywords($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereListOrder($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereParentId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereTitle($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ArticleCategory whereUpdatedAt($value) * @method static \Illuminate\Database\Query\Builder|\App\Models\ArticleCategory withTrashed() * @method static \Illuminate\Database\Query\Builder|\App\Models\ArticleCategory withoutTrashed() * @mixin \Eloquent */class ArticleCategory extends Model{    use SoftDeletes,AdminBuilder,ModelTree {        ModelTree::boot as treeBoot;    }    protected $table = 'article_categorys';    public function __construct(array $attributes = [])    {        parent::__construct($attributes);        $this->setParentColumn('parent_id');        $this->setOrderColumn('list_order');        $this->setTitleColumn('category_name');    }    public function parent()    {        return $this->belongsTo(ArticleCategory::class, 'parent_id', 'id');    }    public function children()    {        return $this->hasMany(ArticleCategory::class, 'parent_id', 'id');    }    public function roles() : BelongsToMany    {        $pivotTable = 'article_category_roles';        $relatedModel = config('admin.database.roles_model');        return $this->belongsToMany($relatedModel, $pivotTable, 'article_category_id', 'role_id');    }    protected static function boot()    {        static::treeBoot();        static::deleting(function ($model) {            $model->roles()->detach();        });    }    protected static function categoryIds()    {        $is_admin = Admin::user()->isAdministrator();        if ($is_admin) {            $not_ids = null;        } else {            $user_roles = Admin::user()->roles->toArray();            $roles_ids = array();            if ($user_roles) {                foreach ($user_roles as $k => $v) {                    $roles_ids[] = $v['pivot']['role_id'];                }            }            //获取对应的分类id            $rst = ArticleCategoryRole::whereIn('role_id', $roles_ids)->get(array('article_category_id'))->toArray();            $role_cates = array();            if ($rst) {                foreach ($rst as $k => $v) {                    $role_cates[] = $v['article_category_id'];                }            }            $not_cates = ArticleCategoryRole::whereNotIn('article_category_id', $role_cates)->get(array('article_category_id'))->toArray();            $not_ids = array();            if ($not_cates) {                foreach ($not_cates as $k => $v) {                    $not_ids[] = $v['article_category_id'];                }            }        }        return $not_ids;    }}
 |