私はsymfonyを初めて使いました。私はセキュリティとユーザ管理についてのチュートリアルに従っていますが、私のルーティングから来ているような問題に悩まされています。symfony:ルーティングに関する問題
私はちょうど私が/app_dev.php/login
に行くときに実際に、働いているログインフォームを作成し、フォームが現れ、私はそれを埋めることができますが、私はそれを送信したとき、私は次のエラーを得た:
No route found for "GET /" (from "http://dev-05/ANTOINE/Symfony/web/app_dev.php/login")
404 Not Found - NotFoundHttpException
1 linked Exception:
ResourceNotFoundException »
このエラーが発生した後、私がホームページに戻った場合、私は接続されていることがわかります。したがって、動作していますが、リダイレクトはできません。
ドキュメントによると、これは間違って設定されているかもしれないルーティングから来ていますが、私はどこで間違いをしたのか分かりません。ここで
は私のフォームは、私のsecurity.ymlと私のrouting.ymlファイルです:
{% extends "AKMUserBundle::layout.html.twig" %}
{% block akmuser_body %}
{% if error %}
<div class="alert alert-danger">{{ error.message }}</div>
{% endif %}
<form action="{{ path('login_check') }}" method="post">
<label for="username">Login : </label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
<label for="password">Mot de passe :</label>
<input type="password" id="password" name="_password" />
<br />
<input type="submit" value="Connexion" />
</form>
{% endblock %}
のsecurity.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: ['ROLE_USER'] }
admin: { password: adminpass, roles: ['ROLE_ADMIN'] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: true
form_login:
login_path: login
check_path: login_check
logout:
path: logout
target: /platform
はrouting.ymlファイル:
akm_platform:
resource: "@AKMPlatformBundle/Resources/config/routing.yml"
prefix: /platform
login:
path: /login
defaults:
_controller: AKMUserBundle:Security:login
login_check:
path: /login_check
logout:
path: /logout
私は」 .yml
ファイルは非常に敏感で、通常の字下げの代わりに4つのスペースが必要であることを認識しているので、私はtを書き換えましたスペースごとに行単位でファイルを作成しますが、まだ動作していません。
誰かが私を助けてくれることを願っています:p いくつかの情報が必要な場合は、躊躇しないでください!
編集:私はちょうど私のsecurity.ymlでdefault_target_pathを追加しなければならなかった私の問題を取り除くために:ここでphp bin/console debug:router
編集2の私の結果である
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: ['ROLE_USER'] }
admin: { password: adminpass, roles: ['ROLE_ADMIN'] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: true
form_login:
login_path: login
check_path: login_check
default_target_path: akm_platform_home
logout:
path: logout
target: /platform
ブラウザでログインフォームのソースを表示し、メソッドがPOSTで、アクションが/ login_checkであることを確認します。エラーメッセージは、GET /(トピックから外れる:yamlは4つのスペースを必要とせず、一貫性を保つ必要があることを意味する)。 – Cerad
1番目は、プロジェクトの/ webディレクトリを指す仮想ホストを作成することです。 /ルートは機能しますか?http://dev-05/ANTOINE/Symfony/web/app_dev.php – COil
私の投稿を編集したので、私のフォームを見ることができます。それは私にとっては大丈夫です。ルートに関して、私が/web/app_dev.phpに行こうとするとうまくいきませんが、最後に "/"を付けるとうまくいきます。問題はここから来ていると思いますか? – AKM