Bu aptalca bir soru ise, ben hala symfony için oldukça yeni, bu yüzden özür dilerim. Doktrin ile Symfony 1.4 kullanıyorum. Benim meslektaşım bizim sunucuya bizim istemci tarafında widget bir rapor yapmak için bir JavaScript yazdı:
$j.post(serverpath, {widget_id:widget_id, user_id:user_id, object_id:object_id, action_type:action_type, text_value:stuff_to_report });
Ben bu isteği almak için routing.yml rota oluşturuldu:
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]
Ben isteği işlemek için actions.class.php bir eylem yarattı:
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 {
[...]
}
}
Benim günlük dosyası raporlar:
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:
Ben burada bir adım eksik gerekir. URL değişkenleri geçirerek (ve tabii rotada değişkenleri, belirterek) Biz bu çalışma vardı, ancak çeşitli nedenlerle yerine POST kullanmak istiyorum.
Neden POST parametreleri actions.class.php erişilebilir değil mi?