【发布时间】:2026-01-06 10:05:02
【问题描述】:
我正在尝试在 Symfony 1.4 中制作 API 类型的应用程序。我的目标是接受用户名/密码组合,根据提供的查询参数检索对象。
这是我为路线设置的内容:
login:
url: /user/login
class: sfDoctrineRoute
options: { model: User, type: object }
param: { module: user, action: login }
requirements:
sf_method: post
username: .+
password: .+
在我的executeLogin() 方法中,当我调用$this->getRoute()->getObject() 时,它总是返回表中的第一个对象,而不管我在POST 数据中为username 和password 传递什么值。 (我还尝试在上面将sf_format 设置为“get”的查询字符串中执行GET,并得到相同的结果。)
我做了一些挖掘,发现最终被调用的是sfDoctrineRoute 的getObjectsForParameters($parameters) 方法。查询是根据$parameters 数组中的数组键/值执行的(仅适用于表中具有匹配列名的那些键)。然而,不管我用username 和password 的参数值调用URL,这里$parameters 的值总是等于:
Array (
'module' => 'user',
'action' => 'login'
)
如果我将url 值更改为“/user/login/:username/:password”之类的值,我将不再遇到此问题:$parameters 数组会按预期包含用户名/密码数据。但是,我不想在 URL 中包含这些数据。任何建议表示赞赏。
【问题讨论】:
标签: routing symfony1 doctrine symfony-1.4