一覧や編集ページから削除ボタンを押すと、$idを渡したcontroller destroyメソッドでdelete()で削除する。画像の場合は、unlink。
削除完了メッセージは、Session::flashでsetして、遷移後のページで、@if(Session::has())で、メッセージを表示する方法がある。
edit.blade.php
{!! Form::open(['method'=>'DELETE', 'action'=>['AdminUsersController@destroy', $user->id]]) !!}
{{ csrf_field()}}
<div class="form-group">
{!! Form::submit('Delete User', ['class'=>'btn btn-danger']) !!}
</div>
{!! Form::close() !!}
AdminUsersController.php
public function destroy($id)
{
//
User::findOrFail($id)->delete();
return redirect('/admin/users');
}
### flushの利用
use Illuminate\Support\Facades\Session;
public function destroy($id)
{
//
User::findOrFail($id)->delete();
Session::flash('deleted_user', 'The user has benn deleted');
return redirect('/admin/users');
}
index.blade.php
@if(Session::has('deleted_user'))
<p class="bg-danger">{{session('deleted_user')}}</p>
@endif
deleteする際には、belongsToでコネクトしている画像も削除する
public function destroy($id)
{
//
$user = User::findOrFail($id);
unlink(public_path() ."/". $user->photo->file);
$user->delete();
Session::flash('deleted_user', 'The user has benn deleted');
return redirect('/admin/users');
}
User.php
public function isAdmin(){
if($this->role->name == "administrator" && $this->is_active == 1){
return true;
}
return false;
}
### ログイン後のページ設定
app/Http/Auth/AuthController.php
protected $redirectTo = '/admin';
ユーザ削除の仕様は、要件定義によって変わってくると思います。その場合は、controllerで制御する。