Cette révision appartient à :
Ibrahim Khalil 2023-11-18 14:04:25 +06:00
Parent 35c30daf2c
révision c5cda879cf
11 fichiers modifiés avec 986 ajouts et 392 suppressions

Voir le fichier

@ -4,6 +4,12 @@
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Role;
use App\Http\Requests\Backend\User\AddNewRequest;
use App\Http\Requests\Backend\User\UpdateRequest;
use Exception;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller class UserController extends Controller
{ {
@ -12,7 +18,8 @@ class UserController extends Controller
*/ */
public function index() public function index()
{ {
// $data = User::paginate(10);
return view('backend.user.index', compact('data'));
} }
/** /**
@ -20,15 +27,41 @@ public function index()
*/ */
public function create() public function create()
{ {
// $role = Role::get();
return view('backend.user.create', compact('role'));
} }
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
*/ */
public function store(Request $request) public function store(AddNewRequest $request)
{ {
// try {
$data = new User();
$data->name_en = $request->userName_en;
$data->name_bn = $request->userName_bn;
$data->email = $request->emailAddress;
$data->contact_en = $request->contactNumber_en;
$data->contact_bn = $request->contactNumber_bn;
$data->role_id = $request->roleId;
$data->language = 'en';
$data->full_access = $request->fullAccess;
$data->status = $request->status;
$data->password = Hash::make($request->password);
if ($request->hasFile('image')) {
$imageName = rand(111, 999) . time() . '.' . $request->image->extension();
$request->image->move(public_path('uploads/users'), $imageName);
$data->image = $imageName;
}
if ($data->save())
return redirect()->route('user.index')->with('success', 'Data SAVED');
else
return redirect()->back()->withInput()->with('error', 'Please Try again');
} catch (Exception $e) {
dd($e);
return redirect()->back()->withInput()->with('error', 'Please try again');
}
} }
/** /**
@ -42,17 +75,46 @@ public function show(string $id)
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
*/ */
public function edit(string $id) public function edit($id)
{ {
// $role=Role::get();
$user=User::findOrFail(encryptor('decrypt',$id));
return view('backend.user.edit',compact('role','user'));
} }
/** /**
* Update the specified resource in storage. * Update the specified resource in storage.
*/ */
public function update(Request $request, string $id) public function update(UpdateRequest $request, $id)
{ {
// try {
$data = User::findOrFail(encryptor('decrypt',$id));
$data->name_en = $request->userName_en;
$data->name_bn = $request->userName_bn;
$data->email = $request->emailAddress;
$data->contact_en = $request->contactNumber_en;
$data->contact_bn = $request->contactNumber_bn;
$data->role_id = $request->roleId;
$data->language = 'en';
$data->full_access = $request->fullAccess;
$data->status = $request->status;
if($request->password)
$data->password = Hash::make($request->password);
if ($request->hasFile('image')) {
$imageName = rand(111, 999) . time() . '.' . $request->image->extension();
$request->image->move(public_path('uploads/users'), $imageName);
$data->image = $imageName;
}
if ($data->save())
return redirect()->route('user.index')->with('success', 'Data SAVED');
else
return redirect()->back()->withInput()->with('error', 'Please Try again');
} catch (Exception $e) {
dd($e);
return redirect()->back()->withInput()->with('error', 'Please try again');
}
} }
/** /**

Voir le fichier

@ -20,7 +20,7 @@ public function handle(Request $request, Closure $next): Response
if (!Session::has('userId') || Session::has('userId') == null) { if (!Session::has('userId') || Session::has('userId') == null) {
return redirect()->route('logOut'); return redirect()->route('logOut');
} else { } else {
$user = User::findorFail(currentUserId()); $user = User::find(currentUserId());
if (!$user) { if (!$user) {
return redirecty()->route('logOut'); return redirecty()->route('logOut');
} else if ($user->full_access == "1") { } else if ($user->full_access == "1") {

Voir le fichier

@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests\Backend\User;
use Illuminate\Foundation\Http\FormRequest;
class AddNewRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'userName_en' => 'required|max:255',
'roleId' => 'required|max:2',
'contactNumber_en' => 'required|unique:users,contact_en',
'emailAddress' => 'required|unique:users,email',
'password' => 'required'
];
}
}

Voir le fichier

@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests\Backend\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;
class UpdateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(Request $r): array
{
$id = encryptor('decrypt', $r->uptoken);
return [
'userName_en' => 'required',
'contactNumber_en' => 'required|unique:users,contact_en,' . $id,
'emailAddress' => 'required|unique:users,email,' . $id,
];
}
}

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 18 KiB

Voir le fichier

@ -2,7 +2,6 @@
@section('title', 'Dashboard') @section('title', 'Dashboard')
@section('content') @section('content')
<div id="main-wrapper">
<!--********************************** <!--**********************************
Content body start Content body start
***********************************--> ***********************************-->
@ -530,7 +529,6 @@ class="la la-trash-o"></i></a>
</div> </div>
</div> </div>
</div> </div>
</div>
<!--********************************** <!--**********************************
Content body end Content body end
***********************************--> ***********************************-->

Voir le fichier

@ -15,6 +15,8 @@
<link rel="stylesheet" href="{{asset('public/css/style.css')}}"> <link rel="stylesheet" href="{{asset('public/css/style.css')}}">
<link rel="stylesheet" href="{{asset('public/css/skin-2.css')}}"> <link rel="stylesheet" href="{{asset('public/css/skin-2.css')}}">
@stack('styles')
</head> </head>
<body> <body>
@ -23,7 +25,7 @@
<!--********************************** <!--**********************************
Main wrapper start Main wrapper start
***********************************--> ***********************************-->
<div id="main-wrapper">
<!--********************************** <!--**********************************
Nav header start Nav header start
@ -59,7 +61,8 @@
</span> </span>
<div class="dropdown-menu p-0 m-0"> <div class="dropdown-menu p-0 m-0">
<form> <form>
<input class="form-control" type="search" placeholder="Search" aria-label="Search"> <input class="form-control" type="search" placeholder="Search"
aria-label="Search">
</form> </form>
</div> </div>
</div> </div>
@ -162,7 +165,8 @@ class="ti-arrow-right"></i></a>
<a href="{{route('logOut')}}" class="dropdown-item ai-icon"> <a href="{{route('logOut')}}" class="dropdown-item ai-icon">
<svg id="icon-logout" xmlns="http://www.w3.org/2000/svg" width="18" height="18" <svg id="icon-logout" xmlns="http://www.w3.org/2000/svg" width="18" height="18"
viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" class="feather feather-log-out"> stroke-linecap="round" stroke-linejoin="round"
class="feather feather-log-out">
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path> <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
<polyline points="16 17 21 12 16 7"></polyline> <polyline points="16 17 21 12 16 7"></polyline>
<line x1="21" y1="12" x2="9" y2="12"></line> <line x1="21" y1="12" x2="9" y2="12"></line>
@ -443,6 +447,8 @@ class="ti-arrow-right"></i></a>
<!--********************************** <!--**********************************
Support ticket button end Support ticket button end
***********************************--> ***********************************-->
</div>
<!--********************************** <!--**********************************
Main wrapper end Main wrapper end
***********************************--> ***********************************-->
@ -456,6 +462,8 @@ class="ti-arrow-right"></i></a>
<script src="{{asset('public/js/custom.min.js')}}"></script> <script src="{{asset('public/js/custom.min.js')}}"></script>
<script src="{{asset('public/js/dlabnav-init.js')}}"></script> <script src="{{asset('public/js/dlabnav-init.js')}}"></script>
@stack('scripts')
<!-- Chart ChartJS plugin files --> <!-- Chart ChartJS plugin files -->
<script src="{{asset('public/vendor/chart.js/Chart.bundle.min.js')}}"></script> <script src="{{asset('public/vendor/chart.js/Chart.bundle.min.js')}}"></script>

Voir le fichier

@ -0,0 +1,143 @@
@extends('backend.layouts.app')
@section('title', 'Add User')
@section('content')
<!--**********************************
Content body start
***********************************-->
<div class="content-body">
<!-- row -->
<div class="container-fluid">
<div class="row page-titles mx-0">
<div class="col-sm-6 p-md-0">
<div class="welcome-text">
<h4>Add User</h4>
</div>
</div>
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item active"><a href="javascript:void(0);">User</a></li>
<li class="breadcrumb-item active"><a href="javascript:void(0);">Add User</a></li>
</ol>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-xxl-12 col-sm-12">
<div class="card">
<div class="card-header">
<h5 class="card-title">Basic Info</h5>
</div>
<div class="card-body">
<form action="{{route('user.store')}}" method="post" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Name</label>
<input type="text" class="form-control" name="userName_en" value="{{old('userName_en')}}">
</div>
@if($errors->has('userName_en'))
<span class="text-danger"> {{ $errors->first('userName_en') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">নাম (বাংলায়)</label>
<input type="text" class="form-control" name="userName_bn" value="{{old('userName_bn')}}">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Phone Number</label>
<input type="tel" class="form-control" name="contactNumber_en" value="{{old('contactNumber_en')}}">
</div>
@if($errors->has('contactNumber_en'))
<span class="text-danger"> {{ $errors->first('contactNumber_en') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">ফোন নাম্বার (বাংলায়)</label>
<input type="tel" class="form-control" name="contactNumber_bn" value="{{old('contactNumber_bn')}}">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Email</label>
<input type="email" class="form-control" name="emailAddress" value="{{old('emailAddress')}}">
</div>
@if($errors->has('emailAddress'))
<span class="text-danger"> {{ $errors->first('emailAddress') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Role</label>
<select class="form-control" name="roleId">
@forelse ($role as $r)
<option value="{{$r->id}} {{old('roleId')==$r->id?selected:''}}">
{{$r->type}}</option>
@empty
<option value="">No Role Found</option>
@endforelse
</select>
</div>
@if($errors->has('roleId'))
<span class="text-danger"> {{ $errors->first('roleId') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Full Access</label>
<select class="form-control" name="fullAccess">
<option value="0" @if(old('fullAccess')==0) selected @endif>No</option>
<option value="1" @if(old('fullAccess')==1) selected @endif>Yes</option>
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Status</label>
<select class="form-control" name="status">
<option value="1" @if(old('status')==1) selected @endif>Active</option>
<option value="0" @if(old('status')==0) selected @endif>Inactive</option>
</select>
</div>
</div>
<div class="col-lg-12 col-md-12 col-sm-12">
<label class="form-label">Image</label>
<div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="image">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Password</label>
<input type="password" class="form-control" name="password">
</div>
@if($errors->has('password'))
<span class="text-danger"> {{ $errors->first('password') }}</span>
@endif
</div>
<div class="col-lg-12 col-md-12 col-sm-12">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-light">Cencel</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<!--**********************************
Content body end
***********************************-->
@endsection

Voir le fichier

@ -0,0 +1,149 @@
@extends('backend.layouts.app')
@section('title', 'Edit User')
@section('content')
<!--**********************************
Content body start
***********************************-->
<div class="content-body">
<!-- row -->
<div class="container-fluid">
<div class="row page-titles mx-0">
<div class="col-sm-6 p-md-0">
<div class="welcome-text">
<h4>Add User</h4>
</div>
</div>
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item active"><a href="javascript:void(0);">User</a></li>
<li class="breadcrumb-item active"><a href="javascript:void(0);">Edit User</a></li>
</ol>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-xxl-12 col-sm-12">
<div class="card">
<div class="card-header">
<h5 class="card-title">Basic Info</h5>
</div>
<div class="card-body">
<form action="{{route('user.update', encryptor('encrypt', $user->id))}}" method="post" enctype="multipart/form-data">
@csrf
@method('PATCH')
<input type="hidden" name="uptoken" value="{{encryptor('encrypt',$user->id)}}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Name</label>
<input type="text" class="form-control" name="userName_en"
value="{{old('userName_en', $user->name_en)}}">
</div>
@if($errors->has('userName_en'))
<span class="text-danger"> {{ $errors->first('userName_en') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">নাম (বাংলায়)</label>
<input type="text" class="form-control" name="userName_bn"
value="{{old('userName_bn', $user->name_bn)}}">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Phone Number</label>
<input type="tel" class="form-control" name="contactNumber_en"
value="{{old('contactNumber_en', $user->contact_en)}}">
</div>
@if($errors->has('contactNumber_en'))
<span class="text-danger"> {{ $errors->first('contactNumber_en') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">ফোন নাম্বার (বাংলায়)</label>
<input type="tel" class="form-control" name="contactNumber_bn"
value="{{old('contactNumber_bn', $user->contact_bn)}}">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Email</label>
<input type="email" class="form-control" name="emailAddress" value="{{old('emailAddress', $user->email)}}">
</div>
@if($errors->has('emailAddress'))
<span class="text-danger"> {{ $errors->first('emailAddress') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Role</label>
<select class="form-control" name="roleId">
@forelse ($role as $r)
<option value="{{$r->id}} {{old('roleId', $user->role_id)==$r->id?'selected':''}}">
{{$r->type}}</option>
@empty
<option value="">No Role Found</option>
@endforelse
</select>
</div>
@if($errors->has('roleId'))
<span class="text-danger"> {{ $errors->first('roleId') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Full Access</label>
<select class="form-control" name="fullAccess">
<option value="0" @if(old('fullAccess', $user->full_access)==0) selected @endif>No</option>
<option value="1" @if(old('fullAccess', $user->full_access)==1) selected @endif>Yes</option>
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Status</label>
<select class="form-control" name="status">
<option value="1" @if(old('status', $user->status)==1) selected @endif>Active</option>
<option value="0" @if(old('status', $user->status)==0) selected @endif>Inactive</option>
</select>
</div>
</div>
<div class="col-lg-12 col-md-12 col-sm-12">
<label class="form-label">Image</label>
<div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="image">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Password</label>
<input type="password" class="form-control" name="password">
</div>
@if($errors->has('password'))
<span class="text-danger"> {{ $errors->first('password') }}</span>
@endif
</div>
<div class="col-lg-12 col-md-12 col-sm-12">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-light">Cencel</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<!--**********************************
Content body end
***********************************-->
@endsection

Voir le fichier

@ -0,0 +1,170 @@
@extends('backend.layouts.app')
@section('title', 'User List')
@push('styles')
<!-- Datatable -->
<link href="{{asset('public/vendor/datatables/css/jquery.dataTables.min.css')}}" rel="stylesheet">
<link rel="{{asset('public/stylesheet" href="css/style.css')}}">
@endpush
@section('content')
<!--**********************************
Content body start
***********************************-->
<div class="content-body">
<!-- row -->
<div class="container-fluid">
<div class="row page-titles mx-0">
<div class="col-sm-6 p-md-0">
<div class="welcome-text">
<h4>User List</h4>
</div>
</div>
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item active"><a href="javascript:void(0);">Users</a></li>
<li class="breadcrumb-item active"><a href="javascript:void(0);">All User</a></li>
</ol>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<ul class="nav nav-pills mb-3">
<li class="nav-item"><a href="#list-view" data-toggle="tab"
class="nav-link btn-primary mr-1 show active">List View</a></li>
<li class="nav-item"><a href="#grid-view" data-toggle="tab" class="nav-link btn-primary">Grid
View</a></li>
</ul>
</div>
<div class="col-lg-12">
<div class="row tab-content">
<div id="list-view" class="tab-pane fade active show col-lg-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">All Students List </h4>
<a href="add-student.html" class="btn btn-primary">+ Add new</a>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="example3" class="display" style="min-width: 845px">
<thead>
<tr>
<th>{{__('#')}}</th>
<th>{{__('Name')}}</th>
<th>{{__('Email')}}</th>
<th>{{__('Contact')}}</th>
<th>{{__('Role')}}</th>
<th>{{__('Status')}}</th>
<th>{{__('Action')}}</th>
</tr>
</thead>
<tbody>
@forelse ($data as $d)
<tr>
<td><img class="rounded-circle" width="35" height="35"
src="{{asset('public/uploads/users/'.$d->image)}}" alt=""></td>
<td><strong>{{$d->name_en}}</strong></td>
<td>{{$d->email}}</td>
<td>{{$d->contact_en}}</td>
<td>{{$d->role?->type}}</td>
<td>@if($d->status==1){{__('Active')}} @else{{__('Inactive')}} @endif
</td>
<td>
<a href="{{route('user.edit', encryptor('encrypt',$d->id))}}" class="btn btn-sm btn-primary"><i
class="la la-pencil"></i></a>
<a href="javascript:void(0);" class="btn btn-sm btn-danger"><i
class="la la-trash-o"></i></a>
</td>
</tr>
@empty
<tr>
<th colspan="7" class="text-center">No User Found</th>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
<div id="grid-view" class="tab-pane fade col-lg-12">
<div class="row">
@forelse ($data as $d)
<div class="col-lg-4 col-md-6 col-sm-6 col-12">
<div class="card card-profile">
<div class="card-header justify-content-end pb-0">
<div class="dropdown">
<button class="btn btn-link" type="button" data-toggle="dropdown">
<span class="dropdown-dots fs--1"></span>
</button>
<div class="dropdown-menu dropdown-menu-right border py-0">
<div class="py-2">
<a class="dropdown-item" href="javascript:void(0);">Edit</a>
<a class="dropdown-item text-danger"
href="javascript:void(0);">Delete</a>
</div>
</div>
</div>
</div>
<div class="card-body pt-2">
<div class="text-center">
<div class="profile-photo">
<img src="{{asset('public/uploads/users/'.$d->image)}}" width="100" height="100" class="rounded-circle" alt="">
</div>
<h3 class="mt-4 mb-1">{{$d->name_en}}</h3>
<p class="text-muted">{{$d->role?->type}}</p>
<ul class="list-group mb-3 list-group-flush">
<li class="list-group-item px-0 d-flex justify-content-between">
<span>#Sl.</span><strong>{{$d->id}}</strong>
</li>
<li class="list-group-item px-0 d-flex justify-content-between">
<span class="mb-0">Phone No.
:</span><strong>{{$d->contact_en}}</strong>
</li>
<li class="list-group-item px-0 d-flex justify-content-between">
<span class="mb-0">Email:</span><strong>{{$d->email}}</strong>
</li>
<li class="list-group-item px-0 d-flex justify-content-between">
<span class="mb-0">Created At.
:</span><strong>{{$d->created_at}}</strong>
</li>
</ul>
<a class="btn btn-outline-primary btn-rounded mt-3 px-4"
href="about-student.html">Read More</a>
</div>
</div>
</div>
</div>
@empty
<div class="col-lg-4 col-md-6 col-sm-6 col-12">
<div class="card card-profile">
<div class="card-body pt-2">
<div class="text-center">
<p class="mt-3 px-4">User Not Found</p>
</div>
</div>
</div>
</div>
@endforelse
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--**********************************
Content body end
***********************************-->
@endsection
@push('scripts')
<!-- Datatable -->
<script src="{{asset('public/vendor/datatables/js/jquery.dataTables.min.js')}}"></script>
<script src="{{asset('public/js/plugins-init/datatables.init.js')}}"></script>
@endpush

Voir le fichier

@ -24,7 +24,7 @@
Route::middleware(['checkrole'])->group(function () { Route::middleware(['checkrole'])->group(function () {
Route::get('/dashboard', [dashboard::class, 'index'])->name('dashboard'); Route::get('/dashboard', [dashboard::class, 'index'])->name('dashboard');
Route::resource('/user', user::class)->except(['update', 'store']); Route::resource('/user', user::class);
}); });