<?php
namespace App\Http\Controllers;
use App\User;
use App\Http\Requests\UserRequest;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
/**
* Display a listing of the users
*
* @param \App\User $model
* @return \Illuminate\View\View
*/
public function index(User $model)
{
$users = User::paginate(25);
return view('users.index', compact('users'));
}
/**
* Show the form for creating a new user
*
* @return \Illuminate\View\View
*/
public function create()
{
return view('users.create');
}
/**
* Store a newly created user in storage
*
* @param \App\Http\Requests\UserRequest $request
* @param \App\User $model
* @return \Illuminate\Http\RedirectResponse
*/
public function store(UserRequest $request)
{
$request->merge(['password' => Hash::make($request->get('password'))]);
User::create($request->all());
return redirect()->route('users.index')->withStatus('User successfully created.');
}
/**
* Show the form for editing the specified user
*
* @param \App\User $user
* @return \Illuminate\View\View
*/
public function edit(User $user)
{
return view('users.edit', compact('user'));
}
/**
* Update the specified user in storage
*
* @param \App\Http\Requests\UserRequest $request
* @param \App\User $user
* @return \Illuminate\Http\RedirectResponse
*/
public function update(UserRequest $request, User $user)
{
$hasPassword = $request->get('password');
$request->merge(['password' => Hash::make($request->get('password'))]);
$request->except([$hasPassword ? '' : 'password']);
$user->update($request->all());
return redirect()->route('users.index')->withStatus('User successfully updated.');
}
/**
* Remove the specified user from storage
*
* @param \App\User $user
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy(User $user)
{
$user->delete();
return redirect()->route('users.index')->withStatus('User successfully deleted.');
}
}