private function createCategory($categoryName, $parentCategoryName = null) { $categoryId = null; if ($parentCategoryName == null) { // Top level category //$existing = \App\Models\Category::where('name', '=', mb_strtoupper($categoryName))->first(); //$existing = \DB::select('SELECT id FROM food_categories WHERE LOWER(name) = ' . mb_strtolower($categoryName)); $existing = \DB::table('food_categories')->whereRaw('LOWER(name) = "' . mb_strtolower($categoryName) . '"')->first(); if ($existing == null) { $newCat = new \App\Models\Category(); $newCat->name = ucfirst(mb_strtolower($categoryName)); $newCat->save(); $categoryId = $newCat->id; } else { $categoryId = $existing->id; } } else { // Sub level category //$existingParent = \App\Models\Category::where('name', '=', mb_strtoupper($parentCategoryName))->first(); //$existingParent = \DB::select('SELECT id FROM food_categories WHERE LOWER(name) = ' . mb_strtolower($parentCategoryName)); $existingParent = \DB::table('food_categories')->whereRaw('LOWER(name) = "' . mb_strtolower($parentCategoryName) . '"')->first(); if ($existingParent != null) { //$existing = \App\Models\Category::where('name', '=', $categoryName)->where('parent_id', '=', $existingParent->id)->first(); //$existing = \DB::select('SELECT id FROM food_categories parent_id = ' . $existingParent->id . ' WHERE LOWER(name) = ' . mb_strtolower($parentCategoryName)); $existing = \DB::table('food_categories')->where('parent_id', '=', $existingParent->id)->whereRaw('LOWER(name) = "' . mb_strtolower($categoryName) . '"')->first(); if ($existing == null) { $newCat = new \App\Models\Category(); $newCat->name = ucfirst(mb_strtolower($categoryName)); $newCat->parent_id = $existingParent->id; $newCat->save(); $categoryId = $newCat->id; } else { $categoryId = $existing->id; } } } return $categoryId; }