私は Silex プロジェクトに参加しており、さまざまな処理にクラスを使用しています。
$connection = new Connection($app);
$app->match('/connection', function () use ($app, $connection) {
$connexion->connectMember();
return $app->redirect($app['url_generator']->generate('goHome'));
})->method('GET|POST')->bind('doConnection');
クラス「接続」の関数「connectMember()」には、次のものがあります。
[...]
if($isMember){
[...]
}else{
return $this->_app['twig']->render(
'message.twig',
array('msg' => "This member does not exist.", 'class' => 'Warning'));
}
[...]
しかし、 render () メソッドが機能していません。表示したいエラーメッセージが表示されず、代わりに「$ app-> redirect (...)」が起動されます。
クラスが現在のオブジェクト Silex\Application を使用するようにするにはどうすればよいですか? カスタム クラスを Silex アプリケーションのインスタンスにバインドするためのより良い方法はありますか?
ご回答ありがとうございます。
版 : 情報追加
私が使用する場合:
return $connexion->connectMember();
エラーメッセージが表示されます。しかし、それは良い解決策ではありません。「接続」クラスは、このコードも使用する他のクラスを呼び出します。
$this->_app['twig']->render(...).
$ this->_app (私のクラスに存在) をコントローラーで作成された変数 $app に対応させる方法は?