Viewing file: TrainerController.php (5.37 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Models\Customer; use App\Models\User; use Illuminate\Http\Request; use Spatie\Permission\Models\Role;
class TrainerController extends Controller { public function index() { return view('admin.trainer.index'); }
public function getAll(Request $request) { $trainer = User::where('type', 'trainer')->orderByDesc('created_at'); return datatables()->of($trainer)
->addColumn('profile', function (User $q) { $name = '<h6>' . $q->name . '</h6>'; $email = '<h6>' . $q->email . '</h6>'; $profile = '<div class="d-flex align-items-center"> <div class="profile-img-sec"> <img src="' . asset('uploads/' . $q->profile_picture) . '" height="40" width="45"> </div> <div class="profile-detiails ml-3"> <div class="trainer-name">' . $name . '<div> <div class="trainer-email">' . $email . '<div> </div> </div>';
return $profile; })
->addColumn('customers', function (User $q) { $customers = Customer::where('added_by',$q->id)->count();
return'<div>'.$customers.'</div>'; })
->addColumn('action', function (User $q) { $btn = '<div class="btn-group"> <button type="button" class="btn btn-success rounded" data-toggle="dropdown" aria-expanded="false"> <i class="fas fa-ellipsis-v"></i> </button> <div class="dropdown-menu" role="menu" style="">
<a class="dropdown-item" href="' . route('admin.trainer.edit', [$q->id]) . '">Edit</a> <button class="dropdown-item" data-message="Are you sure you want to delete this trainer" data-action=' . route('admin.trainer.destroy', [$q]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button> <button class="dropdown-item" data-message="You will be logged in as trainer?" data-action=' . route('admin.trainer.login.as') . ' data-input={"id":' . $q->id . '} data-toggle="modal" data-target="#modal-confirm">Login As</button> </div> </div>'; return $btn; }) ->rawColumns(['action', 'customers', 'profile']) ->toJson(); }
public function create() {
return view('admin.trainer.create'); }
public function store(Request $request) {
$request->validate([ 'name' => 'required', 'email' => 'required|unique:users' ]);
$profile_pic = 'default_profile.png'; if ($request->hasFile('image')) { $file = $request->file('image'); $imageName = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads/'), $imageName); $profile_pic = $imageName; }
$trainer = new User(); $trainer->name = $request->name; $trainer->email = $request->email; $trainer->password = bcrypt($request->password); $trainer->profile_picture = $profile_pic; $trainer->save();
$role = Role::updateOrCreate(['name' => 'trainer'], ['name' => 'trainer']); $trainer->assignRole($role);
return redirect()->route('admin.trainer.index')->with('success', 'Trainer successfully created'); }
public function edit($trainer) { $trainer = User::findOrFail($trainer);
$data['trainer'] = $trainer;
return view('admin.trainer.edit', $data); }
public function update($trainer, Request $request) {
$trainer = User::findOrFail($trainer);
$request->validate([ 'name' => 'required', 'email' => 'required|unique:users,email,' . $trainer->id, ]);
if ($request->hasFile('image')) { $file = $request->file('image'); $imageName = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads/'), $imageName); $trainer->profile_picture = $imageName; }
$trainer->name = $request->name; $trainer->email = $request->email; $trainer->password = bcrypt($request->password); $trainer->save();
return redirect()->route('admin.trainer.index')->with('success', 'Trainer successfully update'); }
public function destroy($trainer) { $trainer = User::findOrFail($trainer); $trainer->delete();
return redirect()->route('admin.trainer.index')->with('success', 'Trainer successfully deleted'); }
public function loginAs(Request $request) { if (!$request->id) abort(404); auth()->loginUsingId($request->id); cache()->flush(); return redirect()->route('admin.dashboard')->with('success', trans('You are now logged as trainer')); }
}
|