Php FOSRestBundle向我的路线添加前缀
我正在项目中安装FOSRestBundle并对其进行配置:Php FOSRestBundle向我的路线添加前缀,php,symfony,fosrestbundle,Php,Symfony,Fosrestbundle,我正在项目中安装FOSRestBundle并对其进行配置: fos_rest: param_fetcher_listener: true body_listener: true format_listener: true view: view_response_listener: 'force' formats: xml: true json : true templa
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
view_response_listener: 'force'
formats:
xml: true
json : true
templating_formats:
html: true
force_redirects:
html: true
failed_validation: HTTP_BAD_REQUEST
default_engine: twig
routing_loader:
default_format: json
在my routing.yml中:
api:
resource: routing_api.yml
prefix: /api
路由api.yml
books:
type: rest
resource: @ApiBundle/Controller/BookController.php
和图书管理员:
//namespaces..
/**
* Class BookController
* @package ApiBundle\Controller
*/
class BookController extends BaseApiController
{
public function getBookAction($id)
{
$book = $this->getDoctrine()->getManager()->getRepository('SiteBundle:Books\Books')->find($id);
if(!$book)
{
throw new NotFoundHttpException('Book not found');
}
return $book;
}
}
接下来我将运行控制台命令:
$php应用程序/控制台路由:调试| grep api
并获得:
get\u book\u book get ANY/api/books/{id}/book.{u format}
那么,为什么呢?
如何正确地配置它,所以我得到如下结果:/api/books/{id}.{{u format}
试试这个:
// routing_api.yml
books:
type: rest
resource: @ApiBundle/Controller/BookController.php
get_book_book:
pattern: /books/{id}.{_format}
defaults: { _controller: ApiBundle:Book:myAction, _format: json }
是的,它可以工作,但我不想使用
yml
进行路由。