前提・実現したいこと
Laravelで会員登録&ログインを実装しようとしています。
プロジェクトは下記コマンドで作成しました。
composer create-project --prefer-dist laravel/laravel
Vue.jsを使用しており、axios.postでフォームのデータを送っています。
RegisterController.phpでValidator,createなどが実行されているようです。(Laravel初心者なので詳しくはわかっていません…)
発生している問題・エラーメッセージ
フォームのデータがDBに登録されません。バリデーションもききません。
エラーも出ずログも吐き出されず、そのまま…です。
該当のソースコード
register.vue(必要なところ以外省略しています)
javaScript
1 data () { 2 return { 3 registerForm:{ 4 name:'', 5 user_id:'', 6 email: '', 7 password: '', 8 password_confirmation:'' 9 } 10 } 11 }, 12 methods: { 13 async register() { 14 // authストアのresigterアクションを呼び出す 15 await this.$store.dispatch('auth/register', this.registerForm) 16 17 if (this.apiStatus) { 18 // トップページに移動する 19 this.$router.push('/') 20 } 21 }, 22 },
auth.js(必要なところ以外省略しています)
javaScript
1const actions = { 2 async register(context, data) { 3 const response = await axios.post('/api/register', data) 4 } 5}
routes/api.php(必要なところ以外省略しています)
php
1Route::post('/register', 'Auth\RegisterController@register')->name('register');
RegisterController.php
php
1<?php 2 3namespace App\Http\Controllers\Auth; 4 5use App\User; 6use App\Http\Controllers\Controller; 7use Illuminate\Support\Facades\Hash; 8use Illuminate\Support\Facades\Validator; 9use Illuminate\Foundation\Auth\RegistersUsers; 10use Illuminate\Http\Request; 11 12class RegisterController extends Controller 13{ 14 15 use RegistersUsers; 16 17 protected $redirectTo = '/home'; 18 19 public function __construct() 20 { 21 $this->middleware('guest'); 22 } 23 24 protected function validator(array $data) 25 { 26 return Validator::make($data, [ 27 'name' => ['required', 'string', 'max:255'], 28 'email' => ['string', 'email', 'max:255'], 29 'user_id' => ['required', 'string', 'max:20', 'unique:users'], 30 'password' => ['required', 'string', 'confirmed'], 31 ]); 32 } 33 34 protected function create(array $data) 35 { 36 return User::create([ 37 'name' => $data['name'], 38 'email' => $data['email'], 39 'user_id' => $data['user_id'], 40 'password' => Hash::make($data['password']), 41 ]); 42 } 43 44 // ★ メソッド追加 45 protected function registered(Request $request, $user){ 46 return $user; 47 } 48} 49
補足情報
Laravel 5.8.28
php 7.3.0
vagrantでローカルサーバーをたちあげています。
DB mysql
auth.jsでaxios.post('/api/register', data)するまでのデータはconsole.logで確認できており、dataの中に入力データは入っています。
Controllerでデータを確認する方法がわからず、行き詰まっております。
一度会員登録が正常にできて、その後完成までたどりついた後に
会員登録だけができないことに気がつきました。
最初に成功したときに登録した会員情報でログインすることはでき、別で実装した記事追加や記事の修正などもできるので、
DBへの接続はできています。
他に必要な情報があればつけたしていきます。何卒よろしくお願いいたします。
追記
開発者ツールのNetworkで、registerのステータスコードが302になっていることに気づきました。
Status Code: 302 Found
下記と同じような状況なのかなと思ったのですが、いまいち原因と解決策がわからずでした・・・。
https://laracasts.com/discuss/channels/laravel/status-302-when-submitting-form

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/10 04:50
2020/04/10 07:55