Я использую FOSRestBundle для создания приложения REST, но поскольку функции REST являются только частью, я также использую некоторые встроенные средства автоматизации Symfony2 для генерации кода CRUD. Все работает нормально, но я не могу правильно отобразить маршрут, и я поразмыслил над тем, как это сделать вручную. Я прочитал руководство по определению маршрута в руководстве FOS, чтобы использовать данные аннотации, но как это сделать, поскольку код CRUD, созданный Symfony2, использует другую аннотацию?Как использовать ручные маршруты FOSRestBundle с CRUD от Symfony2?
Вот пример:
class UserController extends Controller
{
/**
* Lists all User entities.
*
* @Route("/", name="user")
* @Method("GET")
* @Template()
*/
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('CompanyWebServicesBundle:User')->findAll();
return array(
'entities' => $entities,
);
}
FOSRest руководство дает аннотацию к ГЭТ как use FOS\RestBundle\Controller\Annotations\Get;
/**
* GET Route annotation.
* @Get("/likes/{type}/{typeId}")
*/
Когда я использую маршрут как /index
, он дает мне ошибку и мое определение маршрута в config.yml:
index:
type: rest
resource: Company\WebservicesBundle\Controller\UserController
Как я могу исправить эту проблему?
Не могли бы вы указать, как я могу указать путь доступа к контроллерам CRUD и REST, скажем, из браузера? Я просто хочу, чтобы один базовый пример работал, а затем я могу учиться на нем. Благодаря! –
Если вы следуете методу, который я использовал с FOSRestBundle, путь к использованию для проверки будет '/ users/{id}'. Обычные контроллеры CRUD следуют тем же соглашениям, что и любое приложение symfony2. Создайте представление, создайте контроллер для визуализации представления и создайте маршрут, который вызовет контроллер. – Sehael
Действительно ли мне нужны два набора маршрутов, когда те, сгенерированные symfony2, уже работают, зачем нужны оба? Что будет делать FOSRestBundle по-другому? Я спрашиваю об этом, потому что теперь у меня два экземпляра, и это немного запутывает, почему я не могу использовать CRUD, созданный только Symfony2? –