1

名前がわからない Symfony2 (2.2) クラスを転送するにはどうすればよいですか?

POST する必要があり、POST パラメータがブラウザ経由で送信されないようにしたいので、リダイレクトしたくないことに注意してください。

内部の「login_check」であるため、パスのクラスは明らかではありません。

\\routing.yml
login: 
    pattern: /login
    defaults: { _controller : MyAppBundle:Security:login }

login_check:
    pattern: /login_check

logout:
    pattern: /logout

資格情報が他の場所から入手できる場合は、次のように応答を返したいだけです。

// SecurityController.php
... 
class SecurityController extends Controller{

    public function loginAction(){
       if($test_if_credentials_present){ 
           $response = $this->forward('login_check', 
              array('_username' => $username, '_password' => $password);
           return $response;
       }
    }
}

login_check はクラスではなくルートであるため、これは失敗します。

ルーターを使用して login_check が対応するクラスを見つける方法はありますか?

クラス名が router:debug から何であるかを知ることで、ハードコードすることもできます

php app/console router:debug login_check

出力:

[router] Route "login_check"
Name         login_check
Path         /login_check
Host         ANY
Scheme       ANY
Method       ANY
Class        Symfony\Component\Routing\Route
Defaults
Requirements NO CUSTOM
Options      compiler_class: Symfony\Component\Routing\RouteCompiler
Path-Regex   #^/login_check$#s

したがって、デフォルトの下にリストされているクラスはありません。

4

0 に答える 0