| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | 
							- <?php
 
- namespace 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;
 
-     }
 
- }
 
 
  |