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

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

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

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

Laravel 5

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

Q&A

解決済

1回答

5229閲覧

laravel5 Requestでのtextareaの取得について

RyoKawamata

総合スコア19

PHP

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

Laravel 5

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

0グッド

0クリップ

投稿2016/06/22 13:24

編集2016/06/22 13:25

###前提・実現したいこと
laravel5でフォームと確認画面を作成しています。
※プログラミングほぼ未経験。phpを2週間前から学習しています。

###発生している問題・エラーメッセージ
formの値をコントローラーのRequestで受け取り、それをviewに渡しているのですが、
textareaの値がうまく渡せず困っています。
ソースコードの
$memo = $request->input('memo');
の'memo'がtextareaです。

エラーとしては、確認画面でtextareaに入力した値ではなく、変数名の$memoがそのまま表示されてしまいます。

###該当のソースコード

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7use App\Http\Requests; 8 9 10class RegistController extends Controller 11{ 12 //フォームの表示 13 public function form() { 14 return view('regist.form'); 15 } 16 //確認画面の表示 17 public function check(Request $request) { 18 $name1 = $request->input('name1'); 19 $name2 = $request->input('name2'); 20 $sex = $request->input('sex'); 21 $birthdate = $request->input('birthdate'); 22 $phone_num = $request->input('phone_num'); 23 $zip = $request->input('zip'); 24 $address = $request->input('address'); 25 $ad = $request->input('ad'); 26 $experience = $request->input('experience'); 27 $firstday = $request->input('firstday'); 28 $memo = $request->input('memo'); 29 30 return view('regist.check', 31 compact( 32 'name1', 33 'name2', 34 'sex', 35 'birthdate', 36 'phone_num', 37 'zip', 38 'address', 39 'ad', 40 'experience', 41 'firstday', 42 'memo' 43 ) 44 ); 45 } 46}

###試したこと
おそらく、textareaはinputではないので、$request->xxx('memo')とするのかなと思うのですが、それがわかりません。
ご回答よろしくお願い致します。

###補足情報(言語/FW/ツール等のバージョンなど)
言語 php
フレームワーク laravel5

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

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

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

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

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

attakei

2016/06/22 13:35

自身が作っていた際にtextareaの中身も、$request->input()で受け取れることを確認しています。可能であれば、フォームと確認画面のbladeテンプレートの提示もしていただけないでしょうか。
RyoKawamata

2016/06/22 14:06

attakei様 ご指摘の通りbladeテンプレートの方が{{'$memo'}}となっており、''を削除したら正常に表示されました。 凡ミスですいません。 早急なレンスポンスありがとうございます。 また機会ございましたらよろしくお願い致します。
guest

回答1

0

ベストアンサー

$request->input('xxx')でtextareaの値を受け取れるはずなので、コードを見た限りだと問題なさそうに見えます。

「$memo」と変数がそのまま出ているということなので、テンプレート側に「{{}}」が抜けているのではないかと思うのですがどうでしょうか?

この手のエラーで考えられる原因として
1.controller側の変数をセットしている箇所に問題がある
2.表示する箇所に問題がある
のどちらかの切り分けをされてみるとよいかもしれません。

1.で問題がないことを確かめるために、ログで$memoの中身を確認してみてください。

「use Log;」を追加して、
return する前の行に「Log::info($memo)」とやってみるとログが出力されるはずです。
(※面倒臭かったら「var_dump($memo)」とやってしまう手もあります)

投稿2016/06/22 13:42

totototon

総合スコア21

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

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

RyoKawamata

2016/06/22 14:02

tonton33 様 大変ご丁寧な回答ありがとうございます。 ご指摘の通り、出力の方を確認したところ{{'$memo'}}となっており、''を外したところ正常に表示されました。 この問題で1時間以上悩んでいたので本当に助かりました。 ありがとうございます。 今後問題でてきた際にはuse Log;も使っていきたいと思います。 また機会ございましたらよろしくお願い致します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問