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

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

ただいまの
回答率

90.48%

  • PHP

    20856questions

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

  • Silex

    19questions

    Silexは、Symfony2の機能を持ち、sinatoraからインスパイアされた PHP5.3以上で動作するPHPマイクロフレームワークです。

Silex コントローラー間での値の受け渡しについて

受付中

回答 0

投稿

  • 評価
  • クリップ 1
  • VIEW 908

naaoh

score 7

silexでサイトを作成しようとしているものです。

ServiceProviderを使ってコントローラーで処理→画面表示をしているのですが、
ログイン画面でフォーム入力した値がサーバーにない場合、エラー画面に飛ばす処理を書きました。

//ログインコントローラー
$controllers->match('/login', function(Application $app, Request $request) {        
            if ($request->getMethod() == 'POST') {
                $form = array(
                    'mail'    => $request->get('email'),
                    'name' => $request->get('name'),
                );

                //バリデーション処理
                //サーバーに値がなかった
                $errors = "データがありません";
                if (empty($errors)) {
                    //エラーじゃなかったらトップ画面へ
                } else {
                    //エラーだったらエラー画面へ
                    return $app->redirect($app['url_generator']->generate('error'));
                }
            }
            return $app['twig']->render('login.twig');
        })->bind('login');

//エラーコントローラー
$controllers->match('/error', function(Application $app, Request $request) {
            return $app['twig']->render('error.twig');
        })->bind('error');

ログインコントローラーの$errorという値をエラーコントローラーに渡す方法がわからず、苦戦しています。
ルートに含めず渡す方法(/error/メッセージ のような形ではない方法)をご教授下さい。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

関連した質問

  • 受付中

    Twig URLの取得

    Twigを使い、現在アクセスしているURLを取得したいです。 (PHPでかくところの$_SERVER["REQUEST_URI"];のような‥) 公式をみても探せませんでし

  • 解決済

    phpのテンプレート「Twig」の使い方についてお聞きしたいです!

    お世話になっております。kaoriと申します。 現在お問合せフォームをPHPとTwigを使って作成中なのですが詰まってしまいました。 【最終的にやりたいこと】 入力フ

  • 解決済

    Twigで次の配列要素を取得する方法

    Twig上でPHPのnext関数のように内部配列ポインタをひとつ先に進めて次の配列要素を取得したいのですが、何かよい方法はあるでしょうか。 Loop.indexやfor、Tw

  • 解決済

    phpのif文をtwigに変換するには

    次のphpのコードをtwigを使って表すにはどう書いたら良いのでしょうか? if($id == 'aaa'){ $id = 'bbb'; $name =

  • 受付中

    ECCUBE3系でタグの条件分岐をしたい

    実現したいこと ・ECCUBE 3.0.12 ・商品詳細のタグで条件分岐を行いたい エラー カテゴリーの分岐を真似てタグも分岐しようとしてみましたが、 エラーになりま

  • 解決済

    Twigで0、空文字を判定する方法

    前提・実現したいこと ・Twigで数字の0、空文字を判定し、選択値に応じて選択状態にする。 ・array配列は、入力値、DBからの取得値を保持しています。 ・hours配列は

  • 解決済

    twigのif文について

    ECCUBE3のご注文ページにて、 支払い方法のフォームを出力している部分のTwigにて {% for key, chi

  • 解決済

    Codeigniterでビューのボタンを押して画面遷移させずにSQL(Insert)を実行したい

    表題の通りですが、どのように実現すれば良いのかまったく解らず困っています。 View側のTwigではphpが動かせないのでContorollers側のphpファイル内で処理する

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

  • PHP

    20856questions

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

  • Silex

    19questions

    Silexは、Symfony2の機能を持ち、sinatoraからインスパイアされた PHP5.3以上で動作するPHPマイクロフレームワークです。