ユーザー(管理者権限モデル戦略)を削除するにはLaravelの研究ノート(12)

  1. 削除ボタンのフロントエンド

直接使用することはできません。

<a href={{route('user.destroy', $user)}} class="btn btn-secondary btn-danger">删除</a>

リストをルーティングすることは
ここに画像を挿入説明
、フォームには、showメソッドにジャンプしますように使用されていません

適切にする必要があります:

   <formaction={{route('user.destroy', $user)}} method='POST'>
       @csrf 
       @method('DELETE')  // 模拟delete方法
       <button type="submit" class="btn btn-secondary btn-danger">删除</button>
   </form>
  1. 削除コントローラのデータと追加の管理者アクセス制御(モデル戦略)
    public function destroy(User $user)
    {
    	// 权限控制
        $this->authorize('delete', $user);
        
        $user->delete();
        return redirect()->back();
    }
  1. モデル戦略
	public function delete(User $user, User $model)
	{
	    return $user->is_admin == 1 && $user->id != $model->id;
	}
  1. 前述の権限を表示するための削除ボタン
    @canモデル戦略を制御するために
    @can('delete', $user)
         <form action={{route('user.destroy', $user)}} method='POST'>
             @csrf @method('DELETE')
             <button type="submit" class="btn btn-secondary btn-danger">删除</button>
         </form>
     @endcan
公開された40元の記事 ウォンの賞賛0 ビュー780

おすすめ

転載: blog.csdn.net/qj4865/article/details/104196399