Как сохранить входное значение в базу данных magento2 - PullRequest
0 голосов
/ 16 февраля 2019

Я абсолютно новый в magento.Я сделал новый ввод с именем 'name' в поле ввода электронной почты в app / design / frontend / NewVendor / NewTheme / Magento_Newsletter / templates / subscribe.phtml

<div class="block newsletter">
<div class="title"><strong><?= $block->escapeHtml(__('Newsletter')) ?></strong></div>
<div class="content">
    <form class="form subscribe"
        novalidate
        action="<?= $block->escapeUrl($block->getFormActionUrl()) ?>"
        method="post"
        data-mage-init='{"validation": {"errorClass": "mage-error"}}'
        id="newsletter-validate-detail">
        <div class="field newsletter">
            <label class="label" for="newsletter"><span><?= $block->escapeHtml(__('Sign Up for Our Newsletter:')) ?></span></label>
            <div class="control">
                <input name="email" type="email" id="newsletter"
                       placeholder="<?= $block->escapeHtml(__('Enter your email address')) ?>"
                       data-mage-init='{"mage/trim-input":{}}'
                       data-validate="{required:true, 'validate-email':true}"/>
                <input name="name" placeholder="Name"/>
            </div>

        </div>
        <div class="actions">
            <button class="action subscribe primary" title="<?= $block->escapeHtmlAttr(__('Subscribe')) ?>" type="submit">
                <span><?= $block->escapeHtml(__('Subscribe')) ?></span>
            </button>
        </div>
    </form>
</div>

Я сделал новыйстолбец в таблице newsletter_subscriber в приложении / code / Mag / Newsletter / Setup / UpgradeSchema.php

class UpgradeSchema implements UpgradeSchemaInterface

{

public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    $setup->startSetup();
    if (version_compare($context->getVersion(), '0.0.2', '<')) {
        $setup->getConnection()->addColumn(
            $setup->getTable('newsletter_subscriber'),
            'name',
            [
                'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
                'length' => 50,
                'nullable' => false,
                'default' => '',
                'comment' => 'Name'
            ]
        );
    }
    $setup->endSetup();
}

}

А это мой контроллер вapp / code / Mag / Newsletter / Controller / Subscriber / NewAction.php

<?php
namespace Magebit\Newsletter\Controller\Subscriber;

class NewAction extends 
\Magento\Newsletter\Controller\Subscriber\NewAction
{
    public function execute() {
        $name = $this->getRequest()->getPost();
        var_dump($name);exit;
    }
}

На данный момент входное значение контроллера var_dump.

Чего я хочу добиться, это сохранить входное значение в "name"столбец в таблице" newsletter_subscriber ".

Не могу понять это правильно.Что мне делать дальше?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы должны получить экземпляр модели подписчика, а затем использовать собственный метод, например

->setName('NAME')

, а затем

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