Laravel 5.7でフォームからPostしてみます。
まず、resources/views配下の*.blade.phpから編集していきます。
formのactionは、そのまま、遷移先のパスを指定します。
例えば、topへの画面遷移なら action=”/top” となります。action=”account/index” としてしまうと、相対パスで遷移するので注意が必要。
@csrfを入れないをエラーが出るので注意が必要。
<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でした。
Route::post('/account/index', 'AccountController@store');
AccountController.php
App\AccountでモデルのAccount.phpを呼び出します。
上記で記載の通り、getの場合は public function index、postの場合はstore(Request $request)と書きます。
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でカラムを定義します。
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からの読み込みでしょうか。ログイン、ページング、セッションなどはまだ先ですね。データの挿入のところかやっていきましょう。結構時間かかるなー