←Back

Examples found in mixesController.php

Show all records → simple version

public function index(Request $request)
    {
        $mixesQuery = QueryBuilder::for(Mixes::class)
            
	      $mixes =  MixesResource::collection($mixesQuery->get())
        return Inertia::render('Mixes/Index', [
            'mixes' => $mixes,
        ]);
    }

Show only public records → extended version with filters, pagination and more data

Show a single record → Simple version

public function show($id)
    {
			$mix = Mixes::with(['cuisine'])->find($id);
			return Inertia::render('Mixes/Show', ['mix' => $mix]);
    }

Single record → extended version (with certain mixes protected by user_id’s & measures as included data;

Create a new record (with data validation example)

public function store(Request $request)
    {
			 $validatedData = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string|max:500',
            'source_url' => 'nullable|string|max:255',
            'source_name' => 'nullable|string|max:255',
            'user_id' => 'nullable|integer',
            'cuisine_id' => 'required|integer',
        ]);
        $mix = Mixes::create($validatedData);
         return redirect()->route('home')->with('message', 'Mix created successfully');
    }

Edit/Update a record:

 public function update(Request $request, $id)
    {
        $validatedData = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string|max:500',
            'source_url' => 'nullable|string|max:255',
            'source_name' => 'nullable|string|max:255',
            'user_id' => 'nullable|integer',
            'cuisine_id' => 'required|integer',
        $mix = Mixes::with(['favoritedBy', 'cuisine'])->find($id);

        $mix->update($validatedData);
				return Inertia::render(
            'Mixes/Show',
            ['mix' => $mix]
        );
     }

Delete a record:

public function destroy($id)
  {
      // dd($id);
      $mix = Mixes::find($id);
      $mix->delete();
      return redirect()->route('home');
  }