Saya telah membuat modul CRUD saya sendiri yang berisi tindakan sunting inline mirip dengan yang untuk halaman CMS
Semuanya berfungsi OK, tetapi ketika menjalankan phpsniffer dengan standar EcgM2 saya mendapatkan peringatan ini:
Metode LSD metode save () terdeteksi dalam loop
Bagaimana saya bisa menghindari ini?
Catatan: Peringatan yang sama muncul jika saya "mengendus" file inti yang ditautkan di atas.
Berikut adalah execute
metode saya jika seseorang membutuhkannya. Tapi ini sangat mirip dengan yang dari pengontrol halaman CMS
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
]);
}