Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

JustinByrne/Mealing

99 stars
1 code files
View JustinByrne/Mealing on GitHub

app/Http/Controllers/MenuController.php

Open in GitHub
use Gate;
use Carbon\Carbon;
use App\Models\Menu;
use App\Models\Recipe;
use Illuminate\Http\Request;
use Illuminate\Contracts\View\View;
 
class MenuController extends Controller
{
public function index(Request $request): View
{
abort_if(Gate::denies('menu_access'), 403);
 
if (! $request->has('week_start')) {
$date = Carbon::now()->startOfWeek();
$links = [
'prev' => Carbon::now()->subWeek()->startOfWeek()->format('Y-m-d'),
'next' => Carbon::now()->addWeek()->startOfWeek()->format('Y-m-d')
];
} else {
$date = Carbon::parse($request->query('week_start'))->startOfWeek();
$links = [
'prev' => Carbon::parse($request->query('week_start'))->subWeek()->startOfWeek()->format('Y-m-d'),
'next' => Carbon::parse($request->query('week_start'))->addWeek()->startOfWeek()->format('Y-m-d')
];
}
 
$weekDays = [
'Monday' => $date->format('Y-m-d'),
'Tuesday' => $date->addDay()->format('Y-m-d'),
'Wednesday' => $date->addDay()->format('Y-m-d'),
'Thursday' => $date->addDay()->format('Y-m-d'),
'Friday' => $date->addDay()->format('Y-m-d'),
'Saturday' => $date->addDay()->format('Y-m-d'),
'Sunday' => $date->addDay()->format('Y-m-d'),
];
 
$current = Menu::with('recipes', 'recipes.ingredients')->whereHas('recipes', function ($query) use ($date, $weekDays) {
$query->whereIn('date', $weekDays);
})->where('user_id', Auth::id())->first();
 
$recipeCount = Recipe::count();
 
return view('menus.index', compact('weekDays', 'current', 'links', 'recipeCount'));
}
//
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.