ProductCategory.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Models;
  3. use Dcat\Admin\Traits\HasDateTimeFormatter;
  4. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  5. use Illuminate\Database\Eloquent\Relations\HasMany;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. use Illuminate\Database\Eloquent\Model;
  8. /**
  9. * App\Models\ProductCategory
  10. *
  11. * @property int $id
  12. * @property string $name 名称
  13. * @property int $level 分类级别
  14. * @property int|null $pid 父id
  15. * @property int $sort 排序越大越靠前
  16. * @property \Illuminate\Support\Carbon|null $updated_at
  17. * @property \Illuminate\Support\Carbon|null $deleted_at
  18. * @property \Illuminate\Support\Carbon|null $created_at
  19. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory newModelQuery()
  20. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory newQuery()
  21. * @method static \Illuminate\Database\Query\Builder|ProductCategory onlyTrashed()
  22. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory query()
  23. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereCreatedAt($value)
  24. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereDeletedAt($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereId($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereLevel($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereName($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory wherePid($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereSort($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereUpdatedAt($value)
  31. * @method static \Illuminate\Database\Query\Builder|ProductCategory withTrashed()
  32. * @method static \Illuminate\Database\Query\Builder|ProductCategory withoutTrashed()
  33. * @mixin \Eloquent
  34. * @property-read ProductCategory|null $parent
  35. * @property int $is_opened 是否启用
  36. * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereIsOpened($value)
  37. * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Product[] $products
  38. * @property-read int|null $products_count
  39. */
  40. class ProductCategory extends Model
  41. {
  42. use HasDateTimeFormatter;
  43. use SoftDeletes;
  44. protected $table = 'product_categories';
  45. public function parent(): BelongsTo
  46. {
  47. return $this->belongsTo(ProductCategory::class,'pid','id');
  48. }
  49. public function products(): HasMany
  50. {
  51. return $this->hasMany(Product::class,'cate_id','id');
  52. }
  53. }