Laravel(ユーザー情報削除画面)
ファイル構成
・ビュー
ユーザー情報削除画面
「resources/views/person」フォルダ内の「delete.blade.php」
ユーザー情報一覧画面(削除後)
「resources/views/person」フォルダ内の「index.blade.php」
・モデル
「app」フォルダ内の「User.php」
・コントローラ
app/Http/Controllers」フォルダ内の「UsersController.php 」
・ルーティング
「routes」フォルダ内の「wep.php」
ビュー
テンプレートファイル
delete.blade.php(ユーザー情報削除画面)
➀extends('layouts.temp')
「views」フォルダの「layouts」の「temp.blade.php」を継承
➁@section('title', 'ユーザー情報削除画面')
'title'という区画(@section)に「ユーザー情報削除画面」という文字列を組みこむ
レイアウト位置は、「temp.blade.php」の@yield('title') 下記のソースコード
➂contentという区画 下記では@yield('content')
➃type属性をhiddenにしたときはブラウザには何も表示されない。
➄ ➃では、name属性に値を用意していたが、あくまでもidを検索してきて削除をするだけなのでname属性をここでは設定はしていない。
「temp.blade.php」(ユーザー情報登録画面、ユーザー情報一覧のレイアウトファイル)
「index.blade.php」(ユーザー情報一覧画面)
「resources/views/person」フォルダ内
➀「views」フォルダの「layouts」の「temp.blade.php」を継承
➁listsで受け取ったレコードをforeachで順に出力
・モデル
「app」フォルダ内の「User.php」
レコードを更新や登録の際にあったバリデーションのルールは今回記載していません。
登録画面や更新画面からフォームから値を入力してバリーデーションを通って、レコードを変更していたのですが、今回は、削除だけなのでバリデーションのルールは、省きます。
・コントローラ
「app/Http/Controllers」フォルダ内の「UsersController.php 」
➀controllerクラスを継承したUserControllerクラス
➁モデルクラスのallメソッドでレコード全件取得し$listに格納。
➂レコードデータが格納している$listsをビュー側で(テンプレートファイル:「views」フォルダ内の「user」フォルダのindex.blade.php) で使用できるようにして、ビューに返している
➃モデルクラスのfindメソッドでリクエストで渡ってきたidのレコード検索し、$userに格納。
➄レコード検索を検索したデータ$userをビュー側で(テンプレートファイル:「views」フォルダ内の「user」フォルダのdelete.blade.php)で使用できるようにして、ビュー返す
➅$requestにはPOSTで受け取った情報(ユーザーが削除したいidプロパティ)が入っている。
findメソッドで指定されたid($requestのidプロパティ)に該当するレコードを取得し、モデルのdeleteメソッドを実行し、データベースから該当レコードを削除する。
➆ユーザー情報一覧へリダイレクト
ルーティング
「routes」フォルダ内の「wep.php」
➀レコード一覧を表示をするルーティング情報
➁レコードを削除するgetアクセスのルーティング情報
➂レコードを削除するpostアクセスのルーティング情報
ユーザー情報テーブル「users」のカラム「id」=1のレコードを削除する。
/user/update?id=1とアクセス
yamagutiさんの情報が表示
「削除」ボタンをクリック
yamagutiさんのレコードが削除されました。