ProductCategory.php 2.6 KB

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