Antago
@Antago

Как работать с Yii2 REST API в случае когда id записи имеет тип varchar?

Если id записи имеет тип отличный от integer, то Rest API в Yii2 начинает отдавать 404 при получении информации по одной записи. Сталкивался кто-то? Как решается?
  • Вопрос задан
  • 3416 просмотров
Пригласить эксперта
Ответы на вопрос 2
Terminaft
@Terminaft
Покажите конфиг URLManager'a. Сферический совет - поставьте другую регулярку в 'tokens', либо используйте 'extraPatterns'.

UPD:
Исходя из Вашего комментария, конфиг должен быть таким
'rules' => [
   [
      'class' => 'yii\rest\UrlRule',
      'controller' => 'products',
      'tokens' => [
         '{id}' => '<id:\w+>'
      ],
   ],
]
Ответ написан
Antago
@Antago Автор вопроса
Еще особенность в том, что 404 отдает, только если в UrlManager прописывать универсально:
['class' => 'yii\rest\UrlRule', 'controller' => 'products'],

Если же правила задавать в ручную, то все норм:
'products/' => '/product/view'

Соответственно проблема в UrlManager, который для REST подразумевает id только число. Решается заменой регулярки $tokens в yii\rest\UrlRule
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы