data table crud in laravel code example

Example 1: laravel crud tutorial

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Ticket;

class TicketController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $patients = Patient::where('user_id', auth()->user()->id)->get();
        
        return view('patients.index',compact('patients'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('patients.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $ticket = new Patient();
        $data = $this->validate($request, [
            'name'=>'required',
            'surname'=> 'required'
            'id_number'=> 'required'
        ]);
       
        $patient->savePatient($data);
        return redirect('/home')->with('success', 'New patient has been succesfully created');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $patient = Patient::where('user_id', auth()->user()->id)
                        ->where('id', $id)
                        ->first();

        return view('patients.edit', compact('patient', 'id'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $patient = new Patient();
        $data = $this->validate($request, [
            'name'=>'required',
            'surname'=> 'required'
            'id_number'=> 'required'
        ]);
        $data['id'] = $id;
        $patient->updatePatient($data);

        return redirect('/home')->with('success', 'Patient Information was updated succesfully');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $patient = Patient::find($id);
        $patient->delete();

        return redirect('/home')->with('success', 'The patient has been deleted!!');
    }
}

Example 2: laravel crud

$ php artisan make:controller ContactController --resource