Categorys.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace app\backend\modules\goods\models;
  3. /**
  4. * Created by PhpStorm.
  5. * Author: 芸众商城 www.yunzshop.com
  6. * Date: 2017/2/22
  7. * Time: 下午2:24
  8. */
  9. use Illuminate\Validation\Rule;
  10. use Illuminate\Support\Facades\DB;
  11. class Categorys extends \app\common\models\Category
  12. {
  13. protected $appends = ['url', 'procedures_url'];
  14. static protected $needLog = true;
  15. public static function getCategory()
  16. {
  17. return self::uniacid()->select('id', 'name', 'parent_id')
  18. ->where('plugin_id', '=', 0)->where('parent_id', '=', 0)
  19. ->with(['hasManyChildren' => function ($query) {
  20. $query->select('id', 'name', 'parent_id')
  21. ->with(['hasManyChildren' => function ($query) {
  22. $query->select('id', 'name', 'parent_id')->where('plugin_id', '=', 0);
  23. }]);
  24. }])
  25. ->orderBy('display_order', 'asc')
  26. ->orderBy('id', 'asc')
  27. ->get()
  28. ->toArray();
  29. }
  30. public static function searchCategory($keyword)
  31. {
  32. global $setlevel;
  33. $setlevel = \Setting::get('shop.category.cat_level');
  34. return self::uniacid()
  35. ->select('id', 'name', 'parent_id', 'enabled', 'is_home', 'level')
  36. ->with(['hasManyChildren' => function ($query) use ($setlevel){
  37. $query->select('id', 'name', 'parent_id', 'enabled', 'is_home', 'level')
  38. ->where('level', $setlevel)
  39. ->with(['hasManyChildren' => function ($query) use ($setlevel) {
  40. $query->select('id', 'name', 'parent_id', 'enabled', 'is_home', 'level')->where('level', $setlevel)->orderBy('display_order' ,'desc');
  41. }])->orderBy('display_order' ,'desc');
  42. }])
  43. ->where('name', 'like', '%' . $keyword . '%')
  44. ->orderBy('display_order', 'desc')
  45. ->orderBy('id' ,'desc')
  46. ->pluginId()
  47. ->distinct()
  48. ->paginate(10);
  49. }
  50. public static function getCategoryData()
  51. {
  52. global $setlevel;
  53. $setlevel = \Setting::get('shop.category.cat_level'); //根据后台设置显示两级还是三级分类
  54. return self::uniacid()
  55. ->select('id', 'name', 'parent_id', 'enabled', 'is_home')->with(['hasManyChildren' => function ($query) use ($setlevel){
  56. $query->select('id', 'name', 'parent_id', 'enabled', 'is_home')
  57. ->with(['hasManyChildren' => function ($query) use ($setlevel) {
  58. $query->select('id', 'name', 'parent_id', 'enabled', 'is_home')->where('level', $setlevel)->orderBy('display_order' ,'desc');
  59. }])->orderBy('display_order' ,'desc');
  60. }])
  61. ->where('level', 1)
  62. ->orderBy('display_order' ,'desc')
  63. ->orderBy('id','desc')
  64. ->pluginId()
  65. ->paginate(10);
  66. }
  67. public function hasManyChildren()
  68. {
  69. return $this->hasMany(self::class, 'parent_id', 'id');
  70. }
  71. public function belongsToChildren()
  72. {
  73. return $this->belongsTo(self::class, 'parent_id');
  74. }
  75. public function getUrlAttribute()
  76. {
  77. return yzAppFullUrl('catelist/' . $this->id);
  78. }
  79. public function getProceduresUrlAttribute()
  80. {
  81. return '/packageB/member/category/catelist/catelist?id=' . $this->id;
  82. }
  83. }