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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Laravel 5

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

4620閲覧

Laravel   入力フォームが未入力の場合エラー文を表示させたい。

masateru2

総合スコア39

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Laravel 5

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/06/28 02:24

php

1<!doctype html> 2<html lang="ja"> 3 <head> 4 <title>Laravelチュートリアル</title> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 7 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous"> 8 </head> 9 <body class="p-3"> 10 <h1>ブログ新規追加</h1> 11 12 <form method="post" action="/create"> 13 {{ csrf_field() }} 14//タイトル入力フォーム 15 <div class="form-group"> 16 <label for="titleInput">タイトル</label> 17 <input type="text" class="form-control" id="titleInput" name="title"> 18 </div> 19//内容入力フォーム 20 <div class="form-group"> 21 <label for="bodyInput">内容</label> 22 <textarea class="form-control" id="bodyInput" rows="3" name="body"></textarea> 23 </div> 24//ボタンクリックでタイトル、内容を追加 25 <button type="submit" class="btn btn-primary">新規追加</button> 26 <a href="/" class="btn btn-primary">戻る</a> 27 } 28 </form> 29 30 <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> 31 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script> 32 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script> 33 </body> 34</html>

現在未入力のまま新規追加ボタンをクリックすると、ページエラーを起こします。
考えた案としてはタイトル入力フォーム、内容入力フォームのIDから値をひっぱってきて確認すればいいのかと思いましたが、やり方が思いつきません、

@if(titleInput == ""){ //エラー文表示 //ページ遷移しないように処理する }

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

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

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

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

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

guest

回答2

0

ベストアンサー

FrameworkやMVCアーキテクチャなど覚えることが多くて使い始めは難儀しますよね。
私もここ1年ほどでLaravelを使うようになりましたが、フォームに関してのバリデーションはリクエストを使うと便利ですよ。

参考
https://qiita.com/sakuraya/items/abca057a424fa9b5a187

リクエストクラスやコントローラーでの受け取りなどちょっと手間は食いますが一元管理となんといってもviewを汚さず構築できるのでせっかくのFrameworkなら使ってみてはいかがでしょうか。

投稿2018/06/28 07:47

unorigino

総合スコア128

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

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

0

oldでとれますよ。直前の入力内容。

  • [Laravel 5.6 HTTPリクエスト-リクエストの取得

#直前の入力](https://readouble.com/laravel/5.6/ja/requests.html#old-input)

バリデーションエラー表示もリファレンスに載っています。

  • [Laravel 5.6 HTTPリクエスト

バリデーション#バリデーションエラー表示](https://readouble.com/laravel/5.6/ja/validation.html#quick-displaying-the-validation-errors)

バリデーション部分もLaravelのルールに則って作り直す必要がありそうです。
リファレンスきちんと読んでいけば基本的なことは大抵できるはずです。

別の方の質問でもコメントしたことがありますが、@if(titleInput == ""){のようにバリデーション機能を使って適切に対応できるところを直に書いてしまうのであればフレームワークを利用するメリットが全くありません。

投稿2018/06/28 02:33

編集2018/06/28 04:10
m.ts10806

総合スコア80850

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

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

masateru2

2018/06/28 03:07

回答大変ありがとうございます。 フレームワークを利用するメリットが全くわかっていないのですが、この書き方ではメリットがないのでしょうか?
m.ts10806

2018/06/28 03:09

普通に生PHPで書いているのとやってること変わりません。フレームワークである必要ないですよね。
masateru2

2018/06/28 03:20

なるほど。phpもフレームワークも使って日が経っていないので、ドキュメント見て勉強したいと思います。。
m.ts10806

2018/06/28 03:41

あれ?そこまで外してる内容と思ってなかったけど低評価付いてる。 kyoshidaさん まずはPHPきちんとおさえてください。 Laravelははじめてのフレームワークとしては 覚えるべきルールが結構多いのでちょっと敷居(学習コスト)が高いものと思います。
arasi

2018/06/28 04:00

laravelのif文は @if() が普通なのにメリットがないといわれても困る
m.ts10806

2018/06/28 04:16 編集

なるほどそういことですね。 そういう意味で書いたわけではありませんが・・。 質問者さんは普通にPHPを書くときと変わらないことをやろうとしているので その部分を「メリットなし」という意味でした。 バリデーションすらも使ってなさそうな組み方でしたし。 @if()を使うこと自体をメリットなしと言っているわけではありません。
m.ts10806

2018/06/28 04:16

勘違いさせてしまっているので回答の文言修正しておきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問