Laravel 5.7でフォームからPostしてみます。
まず、resources/views配下の*.blade.phpから編集していきます。
formのactionは、そのまま、遷移先のパスを指定します。
例えば、topへの画面遷移なら action=”/top” となります。action=”account/index” としてしまうと、相対パスで遷移するので注意が必要。
@csrfを入れないをエラーが出るので注意が必要。
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 | <form action= "/account/index" method= "post" id= "form1" > <table id= "tbl" > @csrf <tr> <th>ログインID</th><td><input type= "text" name= "login_id" size= "40" value= "" ></td> </tr> <tr> <th>権限</th><td><input type= "text" name= "role" size= "40" value= "" v-model= "message" ></td> </tr> <tr v- if = "message" > <th>ほげ</th><td><div id= "app" ><input type= "text" name= "hoge" size= "40" value= "" ></div></td> </tr> <tr v- if = "message" > <th>ほげ</th><td><div id= "app" ><input type= "text" name= "hoge" size= "40" value= "" ></div></td> </tr> <tr v- if = "message" > <th>ほげ</th><td><div id= "app" ><input type= "text" name= "hoge" size= "40" value= "" ></div></td> </tr> <tr v- if = "message" > <th>ほげ</th><td><div id= "app" ><input type= "text" name= "hoge" size= "40" value= "" ></div></td> </tr> </table> <div class = "button_wrapper remodal-bg" > <button type= "submit" value= "送信" id= "square_btn" onClick= "location.href='#modal'" >登録</button> </div> </form> |
つづいて、ルーティング
/routes/web.php を編集していきます。
formでpostする場合はRoute::postとします。http requestの場合はgetでした。
1 | Route::post( '/account/index' , 'AccountController@store' ); |
AccountController.php
App\AccountでモデルのAccount.phpを呼び出します。
上記で記載の通り、getの場合は public function index、postの場合はstore(Request $request)と書きます。
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 | namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Account; class AccountController extends Controller { // public function index(){ return view( 'account' ); } public function store(Request $request ){ $account = new Account([ 'login_id' => $request ->get( 'login_id' ), 'role' => $request ->get( 'role' ), 'hoge' => $request ->get( 'hoge' ), 'hoge' => $request ->get( 'hoge' ), 'hoge' => $request ->get( 'hoge' ), 'hoge' => $request ->get( 'hoge' ) ]); $account ->save(); return view( 'account' ); } } |
Account.php
fillableでカラムを定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Account extends Model { // protected $table = 'account' ; protected $fillable = [ 'login_id' , 'hoge' , 'hoge' , 'hoge' , 'hoge' , 'hoge' ]; } |
select * from account;で、データが挿入されたか確認します。
OKのようです。割といけましたね。
insertでも読み込み($data::all();)でも、どちらもmodelを読み込んで、new hogeとクラスを作っているところは共通です。deleteとupdateはやってませんが、雰囲気は掴めてきたのではないでしょうか。
さて、次はどうするか?
まずinsertの仕組みを全部つくって、データを入れていって、その後、databaseからの読み込みでしょうか。ログイン、ページング、セッションなどはまだ先ですね。データの挿入のところかやっていきましょう。結構時間かかるなー