###前提・実現したいこと
formからユーザー登録ができるようにしたい
###発生している問題・エラーメッセージ
formからのポストをデータベースで受け取れない
###試したこと
strage>logs>laravel.logのログに何か出ているのでは?と思い確認したのですが、本日分のログは無し
ではMysqlのクエリログには何かあるのではと思い確認したのですが、そもそもクエリ自体が実行されていないようでした
mysql> show full processlist\G; *************************** 1. row *************************** Id: 9 User: homestead Host: localhost db: homestead Command: Query Time: 0 State: starting Info: show full processlist 1 row in set (0.00 sec) ERROR: No query specified
データベースの設定に関してはLaravel5.5のデフォルトのまま使っています
config > database.phpの
'database'
'username'
'password'
はデータが入らなかったことから.envファイルの内容に合わせて書き換えました。書き換えてもデータは入りませんでした
###該当のソースコード
データの登録フォームはこのようにしています
<form action="{{ route('admin.signup') }}" method="post" class="form-horizontal" style="margin-top: 50px;"> {{ csrf_field() }} <div class="form-group"> <label class="col-sm-3 control-label" for="InputName">氏名</label> <div class="col-sm-9"> <input type="text" name="admin_name" class="form-control" id="InputName" placeholder="氏名"> <!--/form-group--></div> <div class="form-group"> <label class="col-sm-3 control-label" for="InputTel">PW</label> <div class="col-sm-9"> <input type="password" name="password" class="form-control" id="InputTel" placeholder="パスワード"> </div> <!--/form-group--></div> <div class="form-group"> <label class="col-sm-3 control-label" for="InputTel">郵便番号</label> <div class="col-sm-9"> <input type="number" name="postal_code" class="form-control" id="InputTel" placeholder="郵便番号"> </div> <!--/form-group--></div> <div class="form-group"> <label class="col-sm-3 control-label" for="InputPassword">住所</label> <div class="col-sm-9"> <input type="text" name="street_adress" class="form-control" id="InputPassword" placeholder="住所"> </div> <!--/form-group--></div> <div class="form-group"> <label class="col-sm-3 control-label" for="InputTel">電話番号</label> <div class="col-sm-9"> <input type="number" name="telephone_number" class="form-control" id="InputTel" placeholder="電話番号"> </div> <!--/form-group--></div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-9"> <button type="submit" class="btn btn-primary btn-block">新規登録</button> </div> <!--/form-group--></div> </form>
コントローラーです(use App\Admin;を読み込んで使っています)
public function getSignup(){ return View ('admin.signup'); } public function postSignup(Request $request){ // バリデーション $this->validate($request,[ 'admin_code' => 'required|max:6|integer', 'password' => 'required|max:45', 'admin_name' => 'required|max:45', 'postal_code' => 'required|max:8|integer', 'street_adress' => 'required|max:800', 'telephone_number' => 'required|max:13|integer' ]); //ランダムでユニークなIDを生成 $admin_code = uniqid(rand(1,6)); $admin = new Admin([ 'admin_code' => $request->input($admin), 'password' => $request->input('password'), 'admin_name' => $request->input('admin_name'), 'postal_code' => $request->input('postal_code'), 'street_adress' => $request->input('street_adress'), 'telephone_number' => $request->input('telephone_number') ]); //保存 $admin->save(); //リダイレクト return redirect()->route('admin.profile'); } public function getProfile(){ return view('admin.profile'); }
モデルとマイグレーションファイルです
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Admin extends Model { protected $fillable = [ 'admin_code','password','admin_name', 'postal_code', 'street_adress','telephone_number', ]; }
public function up() { Schema::create('admins', function (Blueprint $table) { $table->string('admin_code', 6)->unique('admin_code_UNIQUE')->comment('管理者コード管理者毎に付与ランダム英数字6桁'); $table->string('password', 45)->comment('パスワード'); $table->string('admin_name', 45)->comment('管理社名'); $table->string('postal_code', 8)->nullable()->comment('郵便番号'); $table->string('street_adress', 800)->nullable()->comment('住所'); $table->string('telephone_number', 13)->nullable()->comment('電話番号'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('admins'); }
ルートです
Route::group(['prefix' => 'admin'], function() { Route::get('/signup', 'AdminController@getSignup')->name('admin.signup'); Route::post('/signup', 'AdminController@postSignup')->name('admin.signup'); Route::post('/profile', 'AdminController@getProfile')->name('admin.profile'); });
自分では原因になりそうなところに気がつくことができませんでした
この設定は終わっているか?こう言うテストをすると問題の切り分けができるなど何かありましたらご指摘お願いいたします
###補足情報(言語/FW/ツール等のバージョンなど)
Laravel5.5
DB = Mysql
PC Mac
PHP 7.0.26
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/21 04:55
2017/12/21 05:12
2017/12/21 05:21
2017/12/21 06:09
2017/12/21 07:36