Categories.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use DB;
  5. class Categories extends Model
  6. {
  7. //
  8. protected $table = "tb_dm_recipe_categories";
  9. public function recipes(){
  10. return $this->hasMany('App\Models\MapRecipeCategories','category_id','id');
  11. }
  12. public function categories_has_recipes(){
  13. $a= $this->belongsToMany('App\Models\Recipes','tb_dm_recipe_categories_map','category_id',
  14. 'recipe_id')->whereNull('deleted_at');
  15. return $a;
  16. }
  17. public function main_images(){
  18. return $this->hasOne('App\Models\Photos','category_id','id')->where('photo_type','main_image');
  19. }
  20. public static function getCategoriesHasRecipes($resto_id){
  21. $query = " SELECT category.* FROM `tb_dm_recipe_categories_map` as category_map
  22. INNER JOIN tb_dm_recipe recipe on recipe.id = category_map.recipe_id
  23. INNER JOIN tb_dm_recipe_categories category on category.id = category_map.category_id
  24. where category_map.resto_id=".$resto_id." and recipe.deleted_at IS NULL group by category_map.category_id";
  25. $query = " SELECT category.*,p.file_name as main_images FROM `tb_dm_recipe_categories_map` as category_map
  26. INNER JOIN tb_dm_recipe recipe on recipe.id = category_map.recipe_id
  27. INNER JOIN tb_dm_recipe_categories category on category.id = category_map.category_id
  28. INNER JOIN photos p on category.id = p.category_id
  29. where category_map.resto_id=".$resto_id." and recipe.deleted_at IS NULL and p.photo_type='main_image' group by category_map.category_id,p.file_name";
  30. $categories = DB::select($query);
  31. return $categories;
  32. }
  33. public static function getRecipeByCategoriesResto($resto_id,$category_id){
  34. $query = " SELECT recipe.*,p.file_name as main_images FROM `tb_dm_recipe_categories_map` as category_map
  35. INNER JOIN tb_dm_recipe recipe on recipe.id = category_map.recipe_id
  36. INNER JOIN tb_dm_recipe_categories category on category.id = category_map.category_id
  37. INNER JOIN photos p on p.recipe_id = recipe.id
  38. where recipe.deleted_at is NULL and category_map.resto_id=".$resto_id." AND p.photo_type='main_image' and category_map.category_id=".$category_id." AND recipe.status = 1 group by category_map.recipe_id,p.file_name";
  39. $recipes = DB::select($query);
  40. return $recipes;
  41. }
  42. public function parent_category(){
  43. return $this->hasOne('App\Models\Categories','id','parent_id');
  44. }
  45. public function childern(){
  46. return $this->hasMany('App\Models\Categories','parent_id','id')->whereNull('deleted_at');
  47. }
  48. }