Я борюсь со странной проблемой, так как я работаю на взаимном сервере. У меня есть брандмауэр, защищающий мою панель администратора, соответствующий всем URL-адресам с /admin/*.
На этой панели администрирования все POST-данные, которые я отправляю, не приходят на контроллер.
var_dump($this->get('request')->request->all())
дает мне пустой массив, то же самое для:
var_dump($_POST)
Это очень раздражает, так как все мои формы и функции CRUD больше не работают... Другие страницы моего сайта (не на панели администратора) работают правильно.
Консоль Chrome и FireBug показывает мне, что данные отправляются правильно.
Я думаю о проблеме с моими файлами .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1 [QSA,L]
</IfModule>
У меня есть этот файл в моем каталоге www, чтобы указать на веб-каталог
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /web/
RewriteRule ^(.*)$ /$1 [L,R=301]
И я добавил это в .htaccess моего веб-каталога.
Мои брандмауэры:
firewalls:
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
always_use_default_target_path: true
default_target_path: /admin
use_referer: true
logout:
path: /logout
target: /login
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
Мой PHP-код функции контроллера:
public function testAction() {
return new Response(var_dump($_POST));
}
Простая HTML-форма:
<form action="{{path_for_controller}}" method="POST"/>
<input type="text" name="search"/>
<input type="submit" value="send"/>
</form>
Просто $this->get('request')->get('search') дает мне null, и POST также пуст.
Спасибо за помощь, я уже совсем в отчаянии...
ИЗМЕНИТЬ
Я заметил, что это сработало несколько раз после очистки кеша, но только на мгновение