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

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

ただいまの
回答率

88.61%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,381

RyoKawamata

score 19

前提・実現したいこと

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

発生している問題・エラーメッセージ

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

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

該当のソースコード

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;


class RegistController extends Controller
{
    //フォームの表示
    public function form() {
        return view('regist.form');
    }
    //確認画面の表示
    public function check(Request $request) {
        $name1      = $request->input('name1');
        $name2      = $request->input('name2');
        $sex        = $request->input('sex');
        $birthdate  = $request->input('birthdate');
        $phone_num  = $request->input('phone_num');
        $zip        = $request->input('zip');
        $address    = $request->input('address');
        $ad         = $request->input('ad');
        $experience = $request->input('experience');
        $firstday   = $request->input('firstday');
        $memo       = $request->input('memo');

        return view('regist.check',
            compact(
                'name1',
                'name2',
                'sex',
                'birthdate',
                'phone_num',
                'zip',
                'address',
                'ad',
                'experience',
                'firstday',
                'memo'
            )
        );
    }
}

試したこと

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

補足情報(言語/FW/ツール等のバージョンなど)

言語 php
フレームワーク laravel5

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • attakei

    2016/06/22 22:35

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

    キャンセル

  • RyoKawamata

    2016/06/22 23:06

    attakei様

    ご指摘の通りbladeテンプレートの方が{{'$memo'}}となっており、''を削除したら正常に表示されました。
    凡ミスですいません。

    早急なレンスポンスありがとうございます。
    また機会ございましたらよろしくお願い致します。

    キャンセル

回答 1

checkベストアンサー

+1

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/22 23:02

    tonton33 様

    大変ご丁寧な回答ありがとうございます。
    ご指摘の通り、出力の方を確認したところ{{'$memo'}}となっており、''を外したところ正常に表示されました。

    この問題で1時間以上悩んでいたので本当に助かりました。
    ありがとうございます。

    今後問題でてきた際にはuse Log;も使っていきたいと思います。

    また機会ございましたらよろしくお願い致します!

    キャンセル

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

  • ただいまの回答率 88.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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