Created
January 15, 2023 22:18
-
-
Save aspsptyd/ab78b6e490efeb856ec9ef3e2a836bfd to your computer and use it in GitHub Desktop.
Menambahkan fungsi edit dan delete
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use Illuminate\Http\Request; | |
use App\Models\User as Model; | |
class UserController extends Controller | |
{ | |
private $viewIndex = 'user_index'; | |
private $viewCreate = 'user_form'; | |
private $viewEdit = 'user_form'; | |
private $routePrefix = 'user'; | |
/** | |
* Display a listing of the resource. | |
* | |
* @return \Illuminate\Http\Response | |
*/ | |
public function index() | |
{ | |
return view('operator.user_index', [ | |
'models' => Model::where('akses', '<>', 'wali')->where('akses', '<>', '-') | |
->latest() | |
->paginate(50) | |
]); | |
} | |
/** | |
* Show the form for creating a new resource. | |
* | |
* @return \Illuminate\Http\Response | |
*/ | |
public function create() | |
{ | |
$data = [ | |
'model' => new Model(), | |
'method' => 'POST', | |
'route' => 'user.store', | |
'button' => 'SIMPAN' | |
]; | |
return view('operator.user_form', $data); | |
} | |
/** | |
* Store a newly created resource in storage. | |
* | |
* @param \Illuminate\Http\Request $request | |
* @return \Illuminate\Http\Response | |
*/ | |
public function store(Request $request) | |
{ | |
$requestData = $request->validate([ | |
'name' => 'required', | |
'email' => 'required|unique:users', | |
'nohp' => 'required|unique:users', | |
'akses' => 'required|in:operator,admin,wali', | |
'password' => 'required' | |
]); | |
$requestData['password'] = bcrypt($requestData['password']); | |
Model::create($requestData); | |
flash('Data berhasil disimpan'); | |
return redirect()->route('user.index'); | |
} | |
/** | |
* 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) | |
{ | |
$data = [ | |
'model' => \App\Models\User::findOrFail($id), | |
'method' => 'PUT', | |
'route' => ['user.update', $id], | |
'button' => 'UPDATE' | |
]; | |
return view('operator.user_form', $data); | |
} | |
/** | |
* Update the specified resource in storage. | |
* | |
* @param \Illuminate\Http\Request $request | |
* @param int $id | |
* @return \Illuminate\Http\Response | |
*/ | |
public function update(Request $request, $id) | |
{ | |
$requestData = $request->validate([ | |
'name' => 'required', | |
'email' => 'required|unique:users,email,' . $id, | |
'nohp' => 'required|unique:users,nohp,' . $id, | |
'akses' => 'required|in:operator,admin,wali', | |
'password' => 'nullable' | |
]); | |
$model = Model::findOrFail($id); | |
if ($requestData['password'] == "") { | |
unset($requestData['password']); | |
} else { | |
$requestData['password'] = bcrypt($requestData['password']); | |
} | |
$model->fill($requestData); | |
$model->save(); | |
flash('Data berhasil diubah'); | |
return redirect()->route('user.index'); | |
} | |
/** | |
* Remove the specified resource from storage. | |
* | |
* @param int $id | |
* @return \Illuminate\Http\Response | |
*/ | |
public function destroy($id) | |
{ | |
$model = Model::findOrFail($id); | |
if ($model->email == '[email protected]') { | |
flash('Data tidak bisa dihapus, karena data Administrator')->error(); | |
return back(); | |
} | |
$model->delete(); | |
flash('Data berhasil dihapus'); | |
return back(); | |
} | |
} |
Author
aspsptyd
commented
Jan 15, 2023
Update UserController.php Refactoring Class (Variable Public)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User as Model;
class UserController extends Controller
{
private $viewIndex = 'user_index';
private $viewCreate = 'user_form';
private $viewEdit = 'user_form';
private $routePrefix = 'user';
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('operator.' . $this->viewIndex, [
'models' => Model::where('akses', '<>', 'wali')->where('akses', '<>', '-')
->latest()
->paginate(50)
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$data = [
'model' => new Model(),
'method' => 'POST',
'route' => $this->routePrefix . '.store',
'button' => 'SIMPAN'
];
return view('operator.' . $this->viewCreate, $data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$requestData = $request->validate([
'name' => 'required',
'email' => 'required|unique:users',
'nohp' => 'required|unique:users',
'akses' => 'required|in:operator,admin,wali',
'password' => 'required'
]);
$requestData['password'] = bcrypt($requestData['password']);
Model::create($requestData);
flash('Data berhasil disimpan');
return redirect()->route($this->routePrefix . '.index');
}
/**
* 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)
{
$data = [
'model' => \App\Models\User::findOrFail($id),
'method' => 'PUT',
'route' => [$this->routePrefix . '.update', $id],
'button' => 'UPDATE'
];
return view('operator.' . $this->viewEdit, $data);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$requestData = $request->validate([
'name' => 'required',
'email' => 'required|unique:users,email,' . $id,
'nohp' => 'required|unique:users,nohp,' . $id,
'akses' => 'required|in:operator,admin,wali',
'password' => 'nullable'
]);
$model = Model::findOrFail($id);
if ($requestData['password'] == "") {
unset($requestData['password']);
} else {
$requestData['password'] = bcrypt($requestData['password']);
}
$model->fill($requestData);
$model->save();
flash('Data berhasil diubah');
return redirect()->route($this->routePrefix . '.index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$model = Model::findOrFail($id);
if ($model->email == '[email protected]') {
flash('Data tidak bisa dihapus, karena data Administrator')->error();
return back();
}
$model->delete();
flash('Data berhasil dihapus');
return back();
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment