0

I have created a form when I submitting it going on 404 : Form file

<div class="container py-5">
    <div class="row">
        <div class="col-md-10 mx-auto">
            <form id="vendor_register" method="POST" autocomplete="off" enctype="multipart/form-data" action="<?= $block->getUrl('vendor/index/post'); ?>">
                <?= $block->getBlockHtml('formkey') ?>
                <div class="form-group row">
                    <div class="col-sm-6">
                        <label for="firstname">First name <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="firstname" id="firstname" data-validate='{"required":true}'>
                    </div>
                    <div class="col-sm-6">
                        <label for="lastname">Last name <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" name="lastname" id="lastname" data-validate='{"required":true}'>
                    </div>
                </div>                
                <div class="form-group row">
                    <div class="col-sm-12">
                        <div class="actions-toolbar float-right">
                            <div class="primary">
                                <button type="submit" class="action submit primary" title="Create an Account">
                                    <span>Create an Account</span>
                                </button>
                            </div>                       
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>

Controller file

<?php
/**
 * Copyright ©  All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Test\Works\Controller\Index;

use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\Controller\ResultInterface;
use Magento\Framework\View\Result\PageFactory;

class Post implements HttpPostActionInterface
{

    /**
     * @var PageFactory
     */
    protected $resultPageFactory;

    /**
     * Constructor
     *
     * @param PageFactory $resultPageFactory
     */
    public function __construct(PageFactory $resultPageFactory)
    {
        $this->resultPageFactory = $resultPageFactory;
    }

    /**
     * Execute view action
     *
     * @return ResultInterface
     */
    public function execute()
    {
        die("works");
        return $this->resultPageFactory->create();
    }
}

1 Answer 1

0

Your controller code is right .

Your issue at <?= $block->getUrl('vendor/register/post'); ?>

Your action class name is Test\Works\Controller\Index\Post it means

<?= $block->getUrl('vendor/index/post'); ?>

vendor and should be route id . See https://devdocs.magento.com/guides/v2.4/extension-dev-guide/routing.html#example-of-routing-usage

1
  • I have corrected it but now in controller post value is empty
    – Kanika
    Dec 19, 2020 at 6:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.