diff --git a/app/Http/Controllers/IngredientPickerController.php b/app/Http/Controllers/IngredientPickerController.php index 65850e5..ebe4a89 100644 --- a/app/Http/Controllers/IngredientPickerController.php +++ b/app/Http/Controllers/IngredientPickerController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Food; +use App\Models\Recipe; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -17,6 +18,7 @@ class IngredientPickerController extends Controller $term = $request->query->get('term'); if (!empty($term)) { $results = Food::search($term); + $results = $results->merge(Recipe::search($term)); } return response()->json($results); } diff --git a/app/Models/Food.php b/app/Models/Food.php index ed533d0..7dbb243 100644 --- a/app/Models/Food.php +++ b/app/Models/Food.php @@ -2,13 +2,13 @@ namespace App\Models; +use App\Models\Traits\Ingredient; use App\Models\Traits\Journalable; use App\Models\Traits\Sluggable; use App\Support\Number; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; -use Illuminate\Support\Collection; /** * App\Models\Food @@ -58,9 +58,7 @@ use Illuminate\Support\Collection; */ class Food extends Model { - use HasFactory; - use Sluggable; - use Journalable; + use HasFactory, Ingredient, Journalable, Sluggable; /** * @inheritdoc @@ -118,10 +116,4 @@ class Food extends Model return $this->hasMany(FoodAmount::class); } - /** - * Gets search results for a term. - */ - public static function search(string $term, int $limit = 10): Collection { - return (new static)::where('name', 'like', "%{$term}%")->limit($limit)->get(); - } } diff --git a/app/Models/Recipe.php b/app/Models/Recipe.php index 93262f6..856a910 100644 --- a/app/Models/Recipe.php +++ b/app/Models/Recipe.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Models\Traits\Ingredient; use App\Models\Traits\Journalable; use App\Models\Traits\Sluggable; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -41,9 +42,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany; */ class Recipe extends Model { - use HasFactory; - use Journalable; - use Sluggable; + use HasFactory, Ingredient, Journalable, Sluggable; /** * @inheritdoc @@ -56,7 +55,7 @@ class Recipe extends Model ]; /** - * The attributes that should be cast. + * @inheritdoc */ protected $casts = [ 'servings' => 'int', diff --git a/app/Models/Traits/Ingredient.php b/app/Models/Traits/Ingredient.php new file mode 100644 index 0000000..d27ebb3 --- /dev/null +++ b/app/Models/Traits/Ingredient.php @@ -0,0 +1,15 @@ +limit($limit)->get(); + } +} diff --git a/resources/views/components/ingredient-picker.blade.php b/resources/views/components/ingredient-picker.blade.php index d618d1c..60ea37c 100644 --- a/resources/views/components/ingredient-picker.blade.php +++ b/resources/views/components/ingredient-picker.blade.php @@ -26,11 +26,13 @@ x-bind:data-value="result.name">
-
-
- Serving size - - (g) +
+
+
+ Serving size + + (g) +