質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

受付中

Laravelで新規登録後に画面遷移しない問題

chocomint20
chocomint20

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

1回答

0評価

0クリップ

1926閲覧

投稿2020/08/31 17:08

編集2022/01/12 10:55

Laravelで新規登録後にプロフィール画面に遷移させたいのですが、登録の処理は出来ているし、ChromeのデベロッパーツールでNetworkで通信を確認してもちゃんとPOSTされた後にリダイレクトしたいURLもResponseで返ってきているのですが、何故か画面は切り替わらず登録画面のままです、プロパティのリダイレクト先も変更したのですが、原因がいくら調べてもわかりません何故なのか分かる方いらっしゃいますか

Network

**register** Request URL: http://homestead.test/register Request Method: POST Status Code: 302 Found Remote Address: 192.168.20.10:80 Referrer Policy: no-referrer-when-downgrade **profile** Request URL: http://homestead.test/mypage/profile Request Method: GET Status Code: 200 OK Remote Address: 192.168.20.10:80 Referrer Policy: no-referrer-when-downgrade

web.php

Route::get('/mypage/profile', 'UserController@showProf')->name('mypage.prof');

UserController.php

// プロフィール画面表示 public function showProf() { $user = Auth::user(); return view('user.prof', [ 'user' => $user, ]); }

Router.php

public function auth(array $options = []) { // Authentication Routes... $this->get('login', 'Auth\LoginController@showLoginForm')->name('login'); $this->post('login', 'Auth\LoginController@login'); $this->get('logout', 'Auth\LoginController@showLogout')->name('logout'); $this->post('logout', 'Auth\LoginController@logout'); // Registration Routes... if ($options['register'] ?? true) { $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); $this->post('register', 'Auth\RegisterController@register'); } $this->get('withdraw', 'Auth\RegisterController@showWithdraw')->name('withdraw'); // Password Reset Routes... if ($options['reset'] ?? true) { $this->resetPassword(); } // Email Verification Routes... if ($options['verify'] ?? false) { $this->emailVerification(); } }

RegisterController.php

<?php namespace App\Http\Controllers\Auth; use App\User; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use Illuminate\Foundation\Auth\RegistersUsers; class RegisterController extends Controller { /* |-------------------------------------------------------------------------- | Register Controller |-------------------------------------------------------------------------- | | This controller handles the registration of new users as well as their | validation and creation. By default this controller uses a trait to | provide this functionality without requiring any additional code. | */ use RegistersUsers; /** * Where to redirect users after registration. * * @var string */ protected $redirectTo = '/mypage/profile'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest'); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { return Validator::make($data, [ 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:6',], ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { return User::create([ 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); } }

RegistersUsers.php

<?php namespace Illuminate\Foundation\Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Auth\Events\Registered; trait RegistersUsers { use RedirectsUsers; /** * Show the application registration form. * * @return \Illuminate\Http\Response */ public function showRegistrationForm() { return view('auth.register'); } /** * Handle a registration request for the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function register(Request $request) { $this->validator($request->all())->validate(); event(new Registered($user = $this->create($request->all()))); $this->guard()->login($user); return $this->registered($request, $user) ?: redirect($this->redirectPath()); } /** * Get the guard to be used during registration. * * @return \Illuminate\Contracts\Auth\StatefulGuard */ protected function guard() { return Auth::guard(); } /** * The user has been registered. * * @param \Illuminate\Http\Request $request * @param mixed $user * @return mixed */ protected function registered(Request $request, $user) { // } }

register.blade.php

@extends('layouts.app2') @section('title', '会員登録') @section('content') <div id="app"> <user-register></user-register> </div> @endsection

UserRegister.vue

<template> <div class="l-form p-form"> <h2 class="l-form__head p-form__head"> 新規会員登録 </h2> <div class="l-form__body p-form__body"> <div class="l-form-conteiner"> <div class="form-group"> <label for="email" class="l-form__label p-form__label">メールアドレス</label> <span class="label-require">必須</span> <input id="email" class="l-form__input p-form__input" :class="{ hasErr: errors.email }" type="text" v-model="email" placeholder="PC・携帯どちらでも可"> <div class="area-msg"> {{ errors.email }} </div> </div> <div class="form-group"> <label for="password" class="l-form__label p-form__label">パスワード</label> <span class="label-require">必須</span> <input id="password" class="l-form__input p-form__input" :class="{ hasErr: errors.password }" type="password" v-model="password" placeholder="6文字以上の半角英数字"> <div class="area-msg"> {{ errors.password }} </div> </div> <button type="button" class="p-btn btn-primary" @click="register">登録する</button> </div> </div> </div> </template> <script> export default { data: function() { return { email: '', password: '', errors: '' } }, methods: { register: function () { this.errors = {}; var self = this; var url = '/register'; var params = { email: this.email, password: this.password, }; axios.post(url, params) .then(function (response) { self.email = ''; self.password = ''; }) .catch(function (error) { var responseErrors = error.response.data.errors; var errors = {}; for(var key in responseErrors) { errors[key] = responseErrors[key][0]; } self.errors = errors; }); } }, mounted() { console.log('Component mounted.') } } </script>

追記(試したこと)
①RegisterController.phpの

protected $redirectTo = '/home';

これを

protected $redirectTo = '/mypage/profile';

これに変えた。

②RegisterController.phpに

protected function redirectTo() { return route('mypage.prof'); }

上記のredirectToメソッドを作成

③ブラウザをChromeでやっていたので、safariに変えてみた

④vagrantとhomesteadでサーバーを立ててやっていたので、php artisan serveの方でやってみた

⑤php artisan キャッシュクリア系のコマンドでキャッシュクリアしてみた

上記のことを試しても挙動が変わりませんでした。自分で調べれる限りは試してみたのですがエラーも出ていないしさっぱり原因がわかりません。他に考えうる原因はあるのでしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。