我在这里寻求您的帮助,我对Symfony 4。
的确,我与Symfony 4一起开发了REST API,直到今天呼叫API变得非常慢,一切都非常好。
首先,他给了我以下错误:允许记忆大小为268435456字节耗尽(尝试分配98570240字节)在/home/user/user/user/tlt_symfony_back/vendor/jms/serializer/serializer/src/src/jsonserialialialialializatirization.phpphp on 186中。2019-03-20T12:55:19 01:00 [关键]致命错误:允许记忆大小为268435456字节耗尽(尝试分配98570240字节)
我通过将 memory_limit 设置为 512M 在 php.ini 中解决了,但是呼叫花费很长时间。使用Postman,它将完全关闭窗口。
i使用 fosrestbundle 与 jms_serializer 。
预先感谢您的帮助。
这是用于获取所有公告的示例代码:
public function getAnnonces(Request $request, ObjectManager $manager){
$annonces = $manager->getRepository(Annonces::class)->findAll();
if(!$annonces)
return new JsonResponse([
'status' => 'error',
'message' => 'Il existe aucune annonce'
]);
return $annonces;
}
和Annonces Entity具有基本属性:标题:字符串,类型:字符串,用户:许多人与用户实体的关系
数据库:mysql。
尝试在存储库呼叫后尝试转储$ annonces,真的有一个轻量级对象吗?尝试通过
发布一个公告$annonces = $manager->getRepository(Annonces::class)->find(1);
您需要这里有关系的学说实体吗?如果没有,请尝试获取内容的数组
$qb = $manager->createQueryBuilder();
$annonces = $qb->select('a')->from(Annonces::class, 'a')->getQuery()->getResult(PDO::FETCH_ASSOC);
如果出现问题而没有任何源代码更改,则意味着它是从一开始的,但是它的比例并不明显。
我的第一张照片是检查数据库关系。例如,如果您具有onetomany的关系,则fetch ="急切"或fetch =" lazy",并且右侧表中有很多元素,它将减慢查询左侧表。您可以进行简单的检查是,添加fetch =" extra_ lazy"的问题
https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/extra-lazy-associations.htmlhttps://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/Annotations-Referation.html#annref_onetomany
如果这无济于事,我建议您检查表索引。