Я все еще довольно новичок в Symfony, поэтому приношу свои извинения, если это глупый вопрос. Я использую Symfony 1.4 с Doctrine. Мой коллега написал JavaScript для создания отчета из нашего клиентского виджета на наш сервер:
$j.post(serverpath, {widget_id:widget_id, user_id:user_id, object_id:object_id, action_type:action_type, text_value:stuff_to_report });
Я создал маршрут в routing.yml для получения этого запроса:
widget_report:
url: /widget/report/
options: {model: ReportClass, type: object }
param: {module: widget, action: reports}
requirements:
object_id: \d+
user_id: \d+
action_type: \d+
sf_method: [post]
Я создал действие в actions.class.php для обработки запроса:
public function executeReports(sfWebRequest $request) {
foreach($request->getParameterHolder()->getAll() as $param => $val) {
// $param is the query string name, $val is its value
$this->logMessage("executeReports: $param is $val");
}
try {
[...]
$actionHistory->setUserId($request->getParameter('user_id', 1));
$this->logMessage("executeReports success: ");
} catch {
[...]
}
}
Мой файл журнала сообщает:
Jul 20 18:51:35 symfony [info] {widgetActions} Call "widgetActions->executeReports()"
Jul 20 18:51:35 symfony [info] {widgetActions} executeReports: module is widget
Jul 20 18:51:35 symfony [info] {widgetActions} executeReports: action is reports
Jul 20 18:51:35 symfony [info] {widgetActions} executeReports success:
Я, должно быть, здесь пропускаю шаг. У нас это работало при передаче переменных в URL (и, конечно, при указании переменных в маршруте), но по разным причинам мы хотим использовать вместо него POST.
Почему мои параметры POST недоступны в файле actions.class.php?