Я пытаюсь создать приложение типа API в Symfony 1.4. Моя цель - принять комбинацию имени пользователя и пароля, извлекая объект на основе предоставленных параметров запроса.
Вот что я настроил для своего маршрута:
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
. (Я также пытался выполнить GET в строке запроса с sf_format
, установленным выше, как "get", и имел те же результаты.)
Я немного покопался и обнаружил, что в конечном итоге вызывается getObjectsForParameters($parameters)
метод sfDoctrineRoute
. Запрос выполняется на основе ключей / значений массива в массиве $parameters
(только для ключей с совпадающими именами столбцов в таблице). Однако независимо от того, что я вызываю URL со значениями параметров для username
и password
, значение $parameters
здесь всегда равно:
Array (
'module' => 'user',
'action' => 'login'
)
Если я изменю значение url
на что-то вроде "/ user / login /: username /: password", у меня больше не будет этой проблемы: массив $parameters
затем включает данные имени пользователя / пароля, как и ожидалось. Однако я не хочу включать эти фрагменты данных в URL. Любой совет приветствуется.