CRUD操作を一機に実装します。
DBとそのデータは予め作成しておきます。
RESTful
コントローラ
C:\var\www\ecblue\sqlsrv
php artisan make:controller JimController –resource
C:\var\www\ecblue\sqlsrv\app\Http\Controllersに
JimController.phpが作成されます。
中身は空のアクションのみ記述されてます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class JimController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * 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) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } } |
後で処理を加えます。
ルーティング
Route::resource(‘jims’, ‘JimController’);の一行を加えます。
ルーティングを確認
php artisan route:list
1 2 3 4 5 6 7 8 9 10 11 12 |
C:\var\www\ecblue\sqlsrv>php artisan route:list +--------+-----------+-------------------------------+---------------------+---------------------------------------------------+--------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+-----------+-------------------------------+---------------------+---------------------------------------------------+--------------+ | | GET|HEAD | jims | jims.index | App\Http\Controllers\JimController@index | web | | | POST | jims | jims.store | App\Http\Controllers\JimController@store | web | | | GET|HEAD | jims/create | jims.create | App\Http\Controllers\JimController@create | web | | | GET|HEAD | jims/{jim} | jims.show | App\Http\Controllers\JimController@show | web | | | PUT|PATCH | jims/{jim} | jims.update | App\Http\Controllers\JimController@update | web | | | DELETE | jims/{jim} | jims.destroy | App\Http\Controllers\JimController@destroy | web | | | GET|HEAD | jims/{jim}/edit | jims.edit | App\Http\Controllers\JimController@edit | web | +--------+-----------+-------------------------------+---------------------+---------------------------------------------------+--------------+ |
このようにアクセスすると決まったアクションが実行されるルート作成された事が分かります。
ビュー
コントロールの処理結果(出力)はjimsとします。viewフォルダへjimsフォルダを作成します。
C:\var\www\ecblue\sqlsrv\resources\views\jimsTables
このフォルダにアクションに応じた.blade.php作成して行きます。
例えば、index.blade.php(初期画面)やedit.blade.php(エディット画面)
モデルとコントローラのアクションとビューを作成したら、CRUD操作ができるハズです。
作成
モデル
テーブルのみを確定するクラスを作成します。
C:\var\www\ecblue\sqlsrv>php artisan make:model jimsTable
C:\var\www\ecblue\sqlsrv\appにjimsTable.phpが作成されます。
1 2 3 4 5 6 7 8 9 10 |
<?php namespace App; use Illuminate\Database\Eloquent\Model; class jimsTable extends Model { // } |
少し書き換えます
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php namespace App; use Illuminate\Database\Eloquent\Model; class jimsTable extends Model { // protected $table = 'JmotyTable'; public $timestamps = false; } |
コントローラ
各処理(アクション)を記述します。use App\jimsTable;を忘れないように。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; //↓↓追加 use App\jimsTable; class JimController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $datas = jimsTable::all();// return view('jimsTables.index', ['datas' => $datas]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('jimsTables.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // モデルからインスタンスを生成 $data = new jimsTable; // $requestにformからのデータが格納されているので、以下のようにそれぞれ代入する $data->name = $request->name; $data->message = $request->message; $data->price = $request->price; // 保存 $data->save(); // 保存後 一覧ページへリダイレクト return redirect('/jims'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // 引数で受け取った$idを元にfindでレコードを取得 $data = jimsTable::find($id); // viewにデータを渡す return view('jimsTables.show', ['data' => $data]); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $data = jimsTable::find($id); return view('jimsTables.edit', ['data' => $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) { // idを元にレコードを検索して$articleに代入 $data = jimsTable::find($id); // editで編集されたデータを$articleにそれぞれ代入する $data->name = $request->name; $data->message = $request->message; $data->price = $request->price; // 保存 $data->save(); // 詳細ページへリダイレクト return redirect("/jims/".$id); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // idを元にレコードを検索 $data = jimsTable::find($id); // 削除 $data->delete(); // 一覧にリダイレクト return redirect('/jims'); } } |
ビュー