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

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

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

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

Laravel 5

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

Q&A

0回答

880閲覧

laravelのバリデーションでエラーメッセージが表示されないことがある

tomato01

総合スコア80

PHP

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

Laravel 5

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

0グッド

0クリップ

投稿2020/11/11 01:06

laravelのバリデーションでエラーメッセージが表示されないことがあり困っております。

現象
・ユーザーの新規登録後に登録内容を更新する際、バリデーションに引っかかった場合でもエラーメッセージがでないことがある。その際、DBにデータは保存されません。
・但し、バリデーションに引っかからない内容でフォームからデータを更新(DB保存)し、その後バリデーションに引っかかるデータを入力した場合は、エラーメッセージが正常に表示される

尚、エラーメッセージは日本語化にしており、下記のファイルを内容を変更しております。
/resources/lang/ja/validation.php
→該当箇所を日本語のエラー文に変更

/laravel/config/app.php
→'locale' => 'ja',に変更

ユーザーテーブルの構成
・ID
・メールアドレス
・スキル
・自己紹介
・タイムスタンプ

動作の流れ
1、ユーザー新規登録(ユーザ名とメールアドレスを登録)
※スキルと自己紹介は登録時にnullが入るようにしてあります。

2、プロフィール画面でユーザー情報更新
※ここのバリデーションがうまく動作しておりません。

1.新規登録時のコントローラー(抜粋) protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); }
2.ユーザー情報更新時のコントローラー(抜粋) public function profile_update(Request $request) { $rules = [ 'name' => 'max:20|min:1', 'skill' => 'max:30', 'background' => 'max:400', ]; $this->validate($request, $rules); $auths = Auth::id(); $lists = \App\User::find($auths); $lists->name = $request->name; $lists->skill = $request->skill; $lists->background = $request->background;    $lists->save();    $lists1 = \App\User::where('id', $auths)->get();    return view('profile', [ 'lists1' => $lists1] ); }
ユーザー情報更新時のブレードファイル <form action="/profile_update" method="post">   <table class="t_profile"> @csrf <tr> <th>ニックネーム</th> @if(!empty($list->name)) @if ($errors->has('name')) <td><input type="text" name="name" value="{{old('name')}}"> <span>{{$errors->first('name')}}</span></td> @else <td><input type="text" name="name" value="{{$list->name}}"> @endif </td> @else <td><input type="text" name="name" value="{{old('name')}}"></td> @endif </tr> <tr> <th>スキル・専門性</th> @if(!empty($list->skill)) @if ($errors->has('skill')) <td><input type="text" name="skill" value="{{old('skill')}}"> <span>{{$errors->first('skill')}}</span></td> @else <td><input type="text" name="skill" value="{{$list->skill}}"> @endif </td> @else <td><input type="text" name="skill" value="{{old('skill')}}"></td> @endif </tr> <tr> <th>自己紹介</th> @if(!empty($list->background)) @if ($errors->has('background')) <td><textarea name="background">{{old('background')}}</textarea> <span>{{$errors->first('background')}}</span></td> @else <td><textarea name="background">{{$list->background}}</textarea> @endif  </td>  @else   <td><textarea name="background">{{old('background')}}</textarea></td>  @endif  </tr>   </table> </form>

教えて欲しいこと
・上記のコードや設定で問題がある場合に教えて頂きたいです。
・ユーザーの新規登録の際に自己紹介は登録時にnullが入るようしているのですが、こちらは問題になりそうでしょうか。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問