Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Article.php 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace app\model\article;
  3. use app\model\product\product\StoreProduct;
  4. use crmeb\traits\ModelTrait;
  5. use crmeb\basic\BaseModel;
  6. use think\Model;
  7. /**
  8. * 文章Model
  9. * Class Article
  10. * @package app\model\article
  11. */
  12. class Article extends BaseModel
  13. {
  14. use ModelTrait;
  15. /**
  16. * 数据表主键
  17. * @var string
  18. */
  19. protected $pk = 'id';
  20. /**
  21. * 模型名称
  22. * @var string
  23. */
  24. protected $name = 'article';
  25. /**
  26. * 商品一对一关联
  27. * @return \think\model\relation\HasOne
  28. */
  29. public function storeInfo()
  30. {
  31. return $this->hasOne(StoreProduct::class, 'id', 'product_id')
  32. ->field('store_name,image,price,id,ot_price');
  33. }
  34. /**
  35. * 文章详情一对一关联
  36. * @return \think\model\relation\HasOne
  37. */
  38. public function content()
  39. {
  40. return $this->hasOne(ArticleContent::class, 'nid', 'id')->bind(['content']);
  41. }
  42. /**
  43. * 文章详情一对一关联
  44. * @return \think\model\relation\HasOne
  45. */
  46. public function cateName()
  47. {
  48. return $this->hasOne(ArticleCategory::class, 'id', 'cid')->bind(['catename'=>'title']);
  49. }
  50. /**
  51. * 文章图片获取器
  52. * @param $value
  53. * @return array|false|string[]
  54. */
  55. protected function getImageInputAttr($value)
  56. {
  57. return explode(',', $value) ?: [];
  58. }
  59. /**
  60. * 文章分类搜索器
  61. * @param Model $query
  62. * @param $value
  63. * @param $data
  64. */
  65. public function searchCidAttr($query, $value, $data)
  66. {
  67. if ($value) {
  68. $query->where('cid', $value);
  69. }
  70. }
  71. /**
  72. * 文章标题搜索器
  73. * @param Model $query
  74. * @param $value
  75. * @param $data
  76. */
  77. public function searchTitleAttr($query, $value, $data)
  78. {
  79. $query->where('title', 'like', '%' . $value . '%');
  80. }
  81. /**
  82. * 热门文章搜索器
  83. * @param Model $query
  84. * @param $value
  85. * @param $data
  86. */
  87. public function searchIsHotAttr($query, $value, $data)
  88. {
  89. $query->where('is_hot', $value);
  90. }
  91. /**
  92. * 轮播文章搜索器
  93. * @param Model $query
  94. * @param $value
  95. * @param $data
  96. */
  97. public function searchIsBannerAttr($query, $value, $data)
  98. {
  99. $query->where('is_banner', $value);
  100. }
  101. }