質問編集履歴

3 [RegistersUsers.php]コードを追記しました。

n_yoko

n_yoko score 32

2018/11/18 13:17  投稿

Laravel(5.5) ユーザー登録機能の実装→"ユーザー登録画面(入力フォーム)”が表示されない。
#やりたいこと
Laravel(5.5)でユーザー登録機能を実装しています。
トップ画面(home.blade.php)の"会員登録"のリンク先に設定しているユーザー登録画面(register.blade.php)がブラウザに表示されず、次のエラーが出ます。対処方法をご教示ください。
"Sorry, the page you are looking for could not be found"。
#やったこと
1.データベースの準備(マイグレーションの実行)
 →マイグレーションの実行([php artisan migrate])
2.認証/登録機能クラスのコードを確認し、ルーティングに追加する
 →routes/web.phpに下記のルーティング定義を追加
```ここに言語を入力
Route::get('auth/register','Auth\RegisterController@showRegistrationForm');
Route::post('auth/register','Auth\RegisterController@register');
```
3.トップ画面、登録画面を作る
 ・トップ画面(home.blade.php)
 ・会員登録(register.blade.php)
#コード画面
 
```ここに言語を入力  
#C:\Users\H Yokota\code\sampleapp\vendor\laravel\framework\src\Illuminate\Foundation\Auth\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)  
   {  
       //  
   }  
}  
```  
 
 
```ここに言語を入力
#C:\Users\%USERPROFILE%\code\sampleapp\app\Http\Controllers\Auth\RegisterController.php
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
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 = '/home';
   /**
    * 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, [
           'name' => 'required|string|max:255',
           'email' => 'required|string|email|max:255|unique:users',
           'password' => 'required|string|min:6|confirmed',
       ]);
   }
   /**
    * Create a new user instance after a valid registration.
    *
    * @param array $data
    * @return \App\User
    */
   protected function create(array $data)
   {
       return User::create([
           'name' => $data['name'],
           'email' => $data['email'],
           'password' => bcrypt($data['password']),
       ]);
   }
}
```
```ここに言語を入力
#home.blade.php
<html>
<head>
   <meta charset="utf-8">
</head>
<body>
こんにちは!
@if (Auth::check())
   {{ \Auth::user()->name }}さん
@else
   ゲストさん<br />
   <a href="/auth/register">会員登録</a>
@endif
</body>
</html>
```
```ここに言語を入力
#register.blade.php
<html>
<head>
   <meta charset="utf-8">
</head>
<body>
<h1>ユーザー登録フォーム</h1>
<form name="registform" action="/auth/register" method="post">
   {{ csrf_field() }}
   名前:<input type="text" name="name" size="30"><span>{{ $errors->first('name') }}</span><br/>
   メールアドレス:<input type="text" name="email" size="30"><span>{{ $errors->first('email') }}</span><br/>
   パスワード:<input type="password" name="password" size="30"><span>{{ $errors->first('password') }}</span><br/>
   パスワード(確認):<input type="password" name="password_confirmation" size="30"><span>{{$errors->first('password_confirmation') }}</span><br/>
   <button type='submit' name='action' value='send'>送信</button>
</form>
</body>
</html>
```
#参考書籍
『PHPフレームワーク Laravel Webアプリケーション開発 現場で使えるプロのテクニック』
  • PHP

    38838 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    12074 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Laravel 5

    3337 questions

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

2 RegisterControllerクラスを追記しました

n_yoko

n_yoko score 32

2018/11/18 11:48  投稿

Laravel(5.5) ユーザー登録機能の実装→"ユーザー登録画面(入力フォーム)”が表示されない。
#やりたいこと
Laravel(5.5)でユーザー登録機能を実装しています。
トップ画面(home.blade.php)の"会員登録"のリンク先に設定しているユーザー登録画面(register.blade.php)がブラウザに表示されず、次のエラーが出ます。対処方法をご教示ください。
"Sorry, the page you are looking for could not be found"。
#やったこと
1.データベースの準備(マイグレーションの実行)
 →マイグレーションの実行([php artisan migrate])
2.認証/登録機能クラスのコードを確認し、ルーティングに追加する
 →routes/web.phpに下記のルーティング定義を追加
```ここに言語を入力
Route::get('auth/register','Auth\RegisterController@showRegistrationForm');
Route::post('auth/register','Auth\RegisterController@register');
```
3.トップ画面、登録画面を作る
 ・トップ画面(home.blade.php)
 ・会員登録(register.blade.php)
#コード画面
```ここに言語を入力  
#C:\Users\%USERPROFILE%\code\sampleapp\app\Http\Controllers\Auth\RegisterController.php  
<?php  
 
namespace App\Http\Controllers\Auth;  
 
use App\User;  
use App\Http\Controllers\Controller;  
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 = '/home';  
 
   /**  
    * 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, [  
           'name' => 'required|string|max:255',  
           'email' => 'required|string|email|max:255|unique:users',  
           'password' => 'required|string|min:6|confirmed',  
       ]);  
   }  
 
   /**  
    * Create a new user instance after a valid registration.  
    *  
    * @param array $data  
    * @return \App\User  
    */  
   protected function create(array $data)  
   {  
       return User::create([  
           'name' => $data['name'],  
           'email' => $data['email'],  
           'password' => bcrypt($data['password']),  
       ]);  
   }  
}  
```  
 
 
```ここに言語を入力
#home.blade.php
<html>
<head>
   <meta charset="utf-8">
</head>
<body>
こんにちは!
@if (Auth::check())
   {{ \Auth::user()->name }}さん
@else
   ゲストさん<br />
   <a href="/auth/register">会員登録</a>
@endif
</body>
</html>
```
```ここに言語を入力
#register.blade.php
<html>
<head>
   <meta charset="utf-8">
</head>
<body>
<h1>ユーザー登録フォーム</h1>
<form name="registform" action="/auth/register" method="post">
   {{ csrf_field() }}
   名前:<input type="text" name="name" size="30"><span>{{ $errors->first('name') }}</span><br/>
   メールアドレス:<input type="text" name="email" size="30"><span>{{ $errors->first('email') }}</span><br/>
   パスワード:<input type="password" name="password" size="30"><span>{{ $errors->first('password') }}</span><br/>
   パスワード(確認):<input type="password" name="password_confirmation" size="30"><span>{{$errors->first('password_confirmation') }}</span><br/>
   <button type='submit' name='action' value='send'>送信</button>
</form>
</body>
</html>
```
#参考書籍
『PHPフレームワーク Laravel Webアプリケーション開発 現場で使えるプロのテクニック』
  • PHP

    38838 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    12074 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Laravel 5

    3337 questions

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

1

n_yoko

n_yoko score 32

2018/11/18 01:18  投稿

Laravel(5.5) ユーザー登録機能の実装→"ユーザー登録画面(入力フォーム)”が表示されない。
#やりたいこと
Laravel(5.5)でユーザー登録機能を実装しています。
トップ画面(home.blade.php)の"会員登録"のリンク先に設定しているユーザー登録画面(register.blade.php)がブラウザに表示されず、次のエラーが出ます。対処方法をご教示ください。
"Sorry, the page you are looking for could not be found"。
#やったこと
 →マイグレーションの実行([php artisan migrate])
2.認証/登録機能クラスのコードを確認し、ルーティングに追加する
 →routes/web.phpに下記のルーティング定義を追加
```ここに言語を入力
Route::get('auth/register','Auth\RegisterController@showRegistrationForm');
Route::post('auth/register','Auth\RegisterController@register');
```
3.トップ画面、登録画面を作る
 ・トップ画面(home.blade.php)
 ・会員登録(register.blade.php)
#コード画面
```ここに言語を入力
#home.blade.php
<html>
<head>
   <meta charset="utf-8">
</head>
<body>
こんにちは!
@if (Auth::check())
   {{ \Auth::user()->name }}さん
@else
   ゲストさん<br />
   <a href="/auth/register">会員登録</a>
@endif
</body>
</html>
```
```ここに言語を入力
#register.blade.php
<html>
<head>
   <meta charset="utf-8">
</head>
<body>
<h1>ユーザー登録フォーム</h1>
<form name="registform" action="/auth/register" method="post">
   {{ csrf_field() }}
   名前:<input type="text" name="name" size="30"><span>{{ $errors->first('name') }}</span><br/>
   メールアドレス:<input type="text" name="email" size="30"><span>{{ $errors->first('email') }}</span><br/>
   パスワード:<input type="password" name="password" size="30"><span>{{ $errors->first('password') }}</span><br/>
   パスワード(確認):<input type="password" name="password_confirmation" size="30"><span>{{$errors->first('password_confirmation') }}</span><br/>
   <button type='submit' name='action' value='send'>送信</button>
</form>
</body>
</html>
```
#参考書籍
『PHPフレームワーク Laravel Webアプリケーション開発 現場で使えるプロのテクニック』
  • PHP

    38838 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    12074 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Laravel 5

    3337 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る