আমি আমার নিজস্ব সিআরইউডি মডিউল তৈরি করেছি যা সিএমএস পৃষ্ঠাগুলির জন্য অনুরূপ একটি ইনলাইন সম্পাদনা ক্রিয়া ধারণ করে
সবকিছু ঠিকঠাক কাজ করে, তবে যখন ইকিজএম 2 স্ট্যান্ডার্ডের সাথে পিএইচপিএসফিন্ফার চালনা করি তখন আমি এই সতর্কতাটি পাই:
লুপে মডেল এলএসডি পদ্ধতি সংরক্ষণ () সনাক্ত হয়েছে
আমি কীভাবে এড়াতে পারি?
দ্রষ্টব্য: আমি উপরে লিঙ্কিত মূল ফাইলটি "শুঁক" দিলে একই সতর্কতা উপস্থিত হয়।
কারওর প্রয়োজনে আমার execute
পদ্ধতিটি এখানে । তবে এটি সিএমএস পৃষ্ঠা নিয়ন্ত্রকের মতো একটির মতো
public function execute()
{
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
$resultJson = $this->jsonFactory->create();
$error = false;
$messages = [];
$postItems = $this->getRequest()->getParam('items', []);
if (!($this->getRequest()->getParam('isAjax') && count($postItems))) {
return $resultJson->setData([
'messages' => [__('Please correct the data sent.')],
'error' => true,
]);
}
foreach (array_keys($postItems) as $authorId) {
/** @var \Sample\News\Model\Author $author */
$author = $this->authorRepository->getById((int)$authorId);
try {
$authorData = $this->filterData($postItems[$authorId]);
$this->dataObjectHelper->populateWithArray($author, $authorData , AuthorInterface::class);
$this->authorRepository->save($author);
} catch (LocalizedException $e) {
$messages[] = $this->getErrorWithAuthorId($author, $e->getMessage());
$error = true;
} catch (\RuntimeException $e) {
$messages[] = $this->getErrorWithAuthorId($author, $e->getMessage());
$error = true;
} catch (\Exception $e) {
$messages[] = $this->getErrorWithAuthorId(
$author,
__('Something went wrong while saving the author.')
);
$error = true;
}
}
return $resultJson->setData([
'messages' => $messages,
'error' => $error
]);
}