Symfony控制器能否以相同的方法同时返回多个响应?
因此,我制作了一个控制器,其中包含一段代码,该代码从一个实体(我们称之为“Book”)获取多个对象,并返回一个响应对象,其中包含该书的json数组版本。调用此请求后,我的服务器崩溃,我的整个symfony应用程序收到502“坏网关”响应。symfony是否可能不允许对同一请求使用多个响应对象?服务器是否因此崩溃?提前谢谢。我将在下面留下代码:Symfony控制器能否以相同的方法同时返回多个响应?,symfony,Symfony,因此,我制作了一个控制器,其中包含一段代码,该代码从一个实体(我们称之为“Book”)获取多个对象,并返回一个响应对象,其中包含该书的json数组版本。调用此请求后,我的服务器崩溃,我的整个symfony应用程序收到502“坏网关”响应。symfony是否可能不允许对同一请求使用多个响应对象?服务器是否因此崩溃?提前谢谢。我将在下面留下代码: /** * @Route("/getallbooks") * @param Request $request * @return
/**
* @Route("/getallbooks")
* @param Request $request
* @return Response
*/
public function getAllBooks()
{
$allBooks = $this->em->getRepository(Book::class)->findAll();
foreach ($allBooks as $book){
return new Response(json_encode($book->toArray()));
}
}
当然,您不能为一个请求返回多个响应。
返回一个单一响应,将所有书籍放在
数组中
$allBooks = $this->em->getRepository(Book::class)->findAll();
$data = array_map(function($book) { return $book->toArray(); }, $allBooks);
return new Response(json_encode($data));
当然,您不能为一个请求返回多个响应。
返回一个单一响应,将所有书籍放在数组中
$allBooks = $this->em->getRepository(Book::class)->findAll();
$data = array_map(function($book) { return $book->toArray(); }, $allBooks);
return new Response(json_encode($data));
如果从函数中调用,return语句将立即结束当前函数的执行,并将其参数作为函数调用的值返回。。。
从
第一次返回后,循环和函数执行结束
试试这个
/**
* @Route("/getallbooks")
* @param Request $request
* @return Response
*/
public function getAllBooks()
{
$allBooks = $this->em->getRepository(Book::class)->findAll();
$response = [];
foreach ($allBooks as $book){
$response[] = array(
'id' => $book->getId()
//add here other info
);
}
return new JsonResponse( $response);
}
回应
[{"id":1},{"id":2},{"id":3},{"id":4},{"id":5},{"id":6},{"id":7},{"id":8},{"id":9},{"id":10},{"id":11},{"id":12},{"id":13},{"id":14},{"id":15},{"id":16},{"id":17},{"id":18},{"id":19},{"id":20},{"id":21},{"id":22},{"id":23},{"id":24},{"id":25},{"id":26}]
如果从函数中调用,return语句将立即结束当前函数的执行,并将其参数作为函数调用的值返回。。。
从
第一次返回后,循环和函数执行结束
试试这个
/**
* @Route("/getallbooks")
* @param Request $request
* @return Response
*/
public function getAllBooks()
{
$allBooks = $this->em->getRepository(Book::class)->findAll();
$response = [];
foreach ($allBooks as $book){
$response[] = array(
'id' => $book->getId()
//add here other info
);
}
return new JsonResponse( $response);
}
回应
[{"id":1},{"id":2},{"id":3},{"id":4},{"id":5},{"id":6},{"id":7},{"id":8},{"id":9},{"id":10},{"id":11},{"id":12},{"id":13},{"id":14},{"id":15},{"id":16},{"id":17},{"id":18},{"id":19},{"id":20},{"id":21},{"id":22},{"id":23},{"id":24},{"id":25},{"id":26}]