Я ищу часы, чтобы найти решение этой проблемы, но не повезло.Недопустимый тип смещения в isset или пустой Doctrine clear
Возможно, это дубликат сообщения, но я не нашел его.
Итак, у меня есть проблемы в службы Symfony в, когда я называю диспетчер сущностей clear($entityname)
метод, который я получил эту ошибку:
Warning: Illegal offset type in isset or empty.
Я понятия не имею, почему это происходит.
Если я комментирую метод clear()
, все работает нормально.
Сначала я называю ProductController
public function postProductAction(Request $request)
{
if($jsonData = $this->requestToArray($request)){
$productHandler = $this->get("admin.product_handler");
$insertNews = $productHandler->insert($jsonData);
if($insertNews === true) {
return $this->jsonResponse->setData(array(
"status" => true, "msg" => MessageConstants::SUCCESS_SEND_DATA));
}
}
$this->jsonResponse->setStatusCode(204);
return $this->jsonResponse->setData(
array("status" => false, "msg" => MessageConstants::FAILED_RECEIVE_RESPONSE));
}
Затем вызовите ProductHandler
которые устанавливают новый продукт
$productRepo = new Products();
$productRepo->setCarmodels(json_encode($data['ModelId']));
$productRepo->setCategoryid($category);
$productRepo->setDescription($data['Description']);
$productRepo->setDiscount($data['Discount']);
$productRepo->setDiscountprice($data['DiscountPrice']);
$this->em->persist($productRepo);
$this->em->flush($productRepo);
$insertOther = $this->update($productRepo->getId(), $data);
$this->em->clear($productRepo);
insertAnotfer
обновление вызов, потому что есть некоторые действия, которые требуют, чтобы получить идентификатор продукта, так что мне нужно сначала вставьте, затем обновите.
$product = $productRepo->find((int)$id);
$product->setCarmodels(json_encode($data['ModelId']));
$product->setCategoryid($category);
$product->setDescription($data['Description']);
$product->setDiscount($data['Discount']);
$product->setDiscountprice($data['DiscountPrice']);
В обновлении я также называю четкий метод
$this->em->flush($product);
$this->em->clear($product);
И тогда я получаю эту ошибку. Я попытался удалить ясный метод из обновления, но не повезло. Ошибка не будет срабатывать, только если я установил метод clear()
без сущности в функции вставки.
Не могли бы вы изменить свой пост, и показать полный код и где проблема возникает. Покажите только код/файлы, в которых вы очищаете объект. Благодаря! –