Боря се със странен проблем, тъй като съм в производство на общ сървър. Имам защитна стена, която защитава администраторския ми панел, съвпадайки с всички 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 също е празен.
Благодаря ви за помощта, наистина се отчайвам...
РЕДАКТИРАНЕ
Забелязах, че работи няколко пъти след изчистване на кеша, но само за момент