Сохранение данных формы в пользовательскую таблицу - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть форма, которая связывается с контроллером, и моя цель - сохранить данные в моем пользовательском vendor_module_table

Я натолкнулся на несколько сообщений в Интернете о том, как это сделать.Моя проблема с предоставленными решениями заключается в том, что все они используют диспетчер объектов - и для меня это кажется плохой практикой.Особенно, когда M2 основан на Symfony, где я могу просто вызвать предварительно встроенную функцию сохранения / добавления для моего контроллера, связанную с моей формой, и она просто работает .. Magento2 адаптировал что-то для этого?

public function execute()
{
    $post = (array) $this->getRequest()->getPost();

    if (!empty($post)) {
        $customerId = $post['customer_id'];
        $make = $post['make_id'];
        $model = $post['model_id'];
        $year = $post['year_id'];

        # to do - add insert
        $this->messageManager->addSuccessMessage('Success!');

        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
        $resultRedirect->setUrl('/module/controller/add');

        return $resultRedirect;
    }

    $this->_view->loadLayout();
    $this->_view->renderLayout();
}

Напримеркод из моего проекта Symfony:

if ($form->isSubmitted() && $form->isValid()) {
    $em = $this->getDoctrine()->getManager();

    # set non-form fields
    $category->setApproved(0);
    $category->setCreatedTs(new \DateTime());

    try {
        # this is how Symfony saves data to a table
        $em->persist($category);
        $em->flush();

        $this->addFlash('success', 'Category Submitted for Review.');
    } catch (Exception $e) {
        $this->addFlash('danger', 'Something went skew-if. Please try again.'. $e->getMessage(). '- ' .$e->getCode());
    }

    return $this->redirectToRoute('category_list');
}

Я просмотрел документы и нашел это, но у него нет четкого примера того, как его реализовать.Я наткнулся на несколько постов в Magento SE, и мне посоветовали не использовать из-за того, что это неполная функция.Каковы альтернативы / правильный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...