0

I have overriden the contact form module, after disabling the default contact form validation and apply my custom validation gets the following error:

Fatal error: Uncaught TypeError: Argument 1 passed to Magento\Framework\DataObject::__construct() must be of the type array, null given, called in /var/www/html/magento/app/code/Amy/Contactform/Controller/Index/Post.php on line 119 and defined in /var/www/html/magento/vendor/magento/framework/DataObject.php:38 Stack trace: #0 /var/www/html/magento/app/code/Amy/Contactform/Controller/Index/Post.php(119): Magento\Framework\DataObject->__construct(NULL) #1 /var/www/html/magento/app/code/Amy/Contactform/Controller/Index/Post.php(84): Amy\Contactform\Controller\Index\Post->sendEmail(NULL) #2 /var/www/html/magento/vendor/magento/framework/Interception/Interceptor.php(58): Amy\Contactform\Controller\Index\Post->execute() #3 /var/www/html/magento/vendor/magento/framework/Interception/Interceptor.php(138): Amy\Contactform\Controller\Index\Post\Interceptor->___callParent('execute', Array) #4 /var/www/html/magento/vendor/magento/framework/Interception/Interceptor.php(153): Amy\Contactform\Controller\Index\Post\Interceptor->Magento\Framewor in /var/www/html/magento/vendor/magento/framework/DataObject.php on line 38

Here is my code:

/var/www/html/magento/app/code/Amy/Contactform/Controller/Index/Post.php

:

<?php
/**
 *
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Amy\Contactform\Controller\Index;

use Magento\Contact\Model\ConfigInterface;
use Magento\Contact\Model\MailInterface;
use Magento\Framework\App\Action\Context;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\Controller\Result\Redirect;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\HTTP\PhpEnvironment\Request;
use Psr\Log\LoggerInterface;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\DataObject;
use Magento\Newsletter\Model\SubscriberFactory;

class Post extends \Magento\Contact\Controller\Index\Post
{
    /**
     * @var DataPersistorInterface
     */
    private $dataPersistor;

    /**
     * @var Context
     */
    private $context;

    /**
     * @var MailInterface
     */
    private $mail;

    /**
     * @var LoggerInterface
     */
    private $logger;

    /**
     * @var \Magento\Newsletter\Model\SubscriberFactory
     */
    protected $subscriberFactory;


    /**
     * @param Context $context
     * @param ConfigInterface $contactsConfig
     * @param MailInterface $mail
     * @param DataPersistorInterface $dataPersistor
     * @param LoggerInterface $logger
     */
    public function __construct(
        Context $context,
        ConfigInterface $contactsConfig,
        MailInterface $mail,
        DataPersistorInterface $dataPersistor,
        SubscriberFactory $subscriberFactory,
        LoggerInterface $logger = null
    ) {
        parent::__construct($context, $contactsConfig, $mail, $dataPersistor);
        $this->context = $context;
        $this->mail = $mail;
        $this->dataPersistor = $dataPersistor;
        $this->subscriberFactory = $subscriberFactory;
        $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class);
    }

    /**
     * Post user question
     *
     * @return Redirect
     */
    public function execute()
    {

        if (!$this->isPostRequest()) {
            return $this->resultRedirectFactory->create()->setPath('*/*/');
        }
        try {
            $this->sendEmail($this->validatedParams());

            //  subscribe to newsletter---------CODE START
            if ($this->getRequest()->getParam('is_subscribed', false)) {
                $this->subscriberFactory->create()->subscribe($this->getRequest()->getParam('email'));
            }
            //  subscribe to newsletter---------CODE END


            $this->messageManager->addSuccessMessage(
                __('Thanks for contacting us. Your inquiry was submitted and will be responded to you as soon as possible.')
            );
            $this->dataPersistor->clear('contact_us');
        } catch (LocalizedException $e) {
            $this->messageManager->addErrorMessage($e->getMessage());
            $this->dataPersistor->set('contact_us', $this->getRequest()->getParams());
        } catch (\Exception $e) {
            $this->logger->critical($e);
            $this->messageManager->addErrorMessage(
                __('An error occurred while processing your form. Please try again later.')
            );
            $this->dataPersistor->set('contact_us', $this->getRequest()->getParams());
        }
        return $this->resultRedirectFactory->create()->setPath('contact/index');
    }

    /**
     * @param array $post Post data from contact form
     * @return void
     */
    private function sendEmail($post)
    {
        $this->mail->send(
            $post['subject'],
            $post['email'],
            ['data' => new DataObject($post)]
        );
    }

    /**
     * @return bool
     */
    private function isPostRequest()
    {
        /** @var Request $request */
        $request = $this->getRequest();
        return !empty($request->getPostValue());
    }

    /**
     * @return array
     * @throws \Exception
     */
    private function validatedParams()
    {
        // $request = $this->getRequest();
        // if (trim($request->getParam('name')) === '') {
        //     throw new LocalizedException(__('Name is missing'));
        // }
        // if (trim($request->getParam('lastname')) === '') {
        //     throw new LocalizedException(__('LastName is missing'));
        // }
        // if (trim($request->getParam('address1')) === '') {
        //     throw new LocalizedException(__('Address1 is missing'));
        // }
        // if (trim($request->getParam('address2')) === '') {
        //     throw new LocalizedException(__('Address2 is missing'));
        // }
        // if (trim($request->getParam('city')) === '') {
        //     throw new LocalizedException(__('City is missing'));
        // }
        // if (trim($request->getParam('stateprovince')) === '') {
        //     throw new LocalizedException(__('State is missing'));
        // }
        // if (trim($request->getParam('zipcode')) === '') {
        //     throw new LocalizedException(__('Zipcode is missing'));
        // }
        // if (trim($request->getParam('subject')) === '') {
        //     throw new LocalizedException(__('Subject is missing'));
        // }
        // if (trim($request->getParam('comment')) === '') {
        //     throw new LocalizedException(__('Comment is missing'));
        // }

        // if (false === \strpos($request->getParam('email'), '@')) {
        //     throw new LocalizedException(__('Invalid email address'));
        // }
        // if (trim($request->getParam('hideit')) !== '') {
        //     throw new \Exception();
        // }
        //return $request->getParams();
    }
}

/var/www/html/magento/app/code/Amy/Contactform/view/frontend/templates/form.phtml:

<?php

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
 $states = $objectManager->create('Magento\Directory\Model\RegionFactory')
        ->create()->getCollection()->addFieldToFilter('country_id','US');
//echo "<pre>";
//print_r($states->getData());
$regionList = $block->getRegion();
//$countryList = $block->getCountry();
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

// @codingStandardsIgnoreFile
/** @var \Magento\Contact\Block\ContactForm $block */
?>
<div class="container">
 <div class="row margincontrol">
<!-- <form class="form contact" 22-3-19-->
<form class=""
      action="<?= $block->escapeUrl($block->getFormAction()) ?>"
      id="contact-form"
      method="post"
      data-hasrequired="<?= $block->escapeHtmlAttr(__('* Required Fields')) ?>">
    <fieldset class="fieldset">
        <div class="legend empty_class"><h2 class="header_fontst"><?= $block->escapeHtml(__('Contact Us')) ?></h2></div> 

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field name required">
            <label class="label" for="name"><span class="font_app"><?= $block->escapeHtml(__('First Name')) ?></span></label>
            <div class="control">
                <input name="name" id="name" title="<?= $block->escapeHtmlAttr(__('Name')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('name') ?: $this->helper('Magento\Contact\Helper\Data')->getUserName()) ?>" class="input-text" type="text"/>
            </div>
        </div>

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field lastname required">
            <label class="label boxspaing" for="last_name"><span class="font_app"><?= $block->escapeHtml(__('Last Name')) ?></span></label>
            <div class="control boxspaing">
                <input name="last_name" id="last_name" title="<?= $block->escapeHtmlAttr(__('LastName')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('lastname') ?: $this->helper('Magento\Contact\Helper\Data')->getUserName()) ?>" class="input-text" type="text"/>
            </div>
        </div>

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field email required">
            <label class="label" for="email"><span class="font_app"><?= $block->escapeHtml(__('Email')) ?></span></label>
            <div class="control">
                <input name="email" id="email" title="<?= $block->escapeHtmlAttr(__('Email')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('email') ?: $this->helper('Magento\Contact\Helper\Data')->getUserEmail()) ?>" class="input-text" type="email"/>
            </div>
        </div>

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field telephone required">
            <label class="label boxspaing" for="telephone"><span class="font_app"><?= $block->escapeHtml(__('Telephone')) ?></span></label>
            <div class="control boxspaing">
                <input name="telephone" id="telephone" title="<?= $block->escapeHtmlAttr(__('Phone Number')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('telephone')) ?>" class="input-text" type="text"/>
            </div>
        </div>

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field address1 required">
            <label class="label" for="address1"><span class="font_app"><?= $block->escapeHtml(__('Address1')) ?></span></label>
            <div class="control">
                <input name="address1" id="address1" title="<?= $block->escapeHtmlAttr(__('Address1')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('address1')) ?>" class="input-text" type="text"/>
            </div>
        </div>

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field address2">
            <label class="label boxspaing" for="address2"><span class="font_app"><?= $block->escapeHtml(__('Address2')) ?></span></label>
            <div class="control boxspaing">
                <input name="address2" id="address2" title="<?= $block->escapeHtmlAttr(__('Address2')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('address2')) ?>" class="input-text" type="text"/>
            </div>
        </div>

          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field city required">
            <label class="label" for="city"><span class="font_app"><?= $block->escapeHtml(__('City')) ?></span></label>
            <div class="control">
                <input name="city" id="city" title="<?= $block->escapeHtmlAttr(__('City')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('city')) ?>" class="input-text" type="text"/>
            </div>
        </div>

           <div class="col-sm-12 col-md-6 col-lg-6 hightposition field stateprovince required">
            <label class="label boxspaing" for="stateprovince"><span class="font_app"><?php  echo __('State / Province') ?></span></label>
            <div class="control boxspaing">
        <select  class="select_img" name="stateprovince" id ="stateprovince" class="input-text" type="text">
        <option selected value>Select One</option>
        <?php foreach ($states as $_state):?>
          <option value="<?php echo $_state->getName();?>"><?php echo $_state->getName();?></option>
          <?php endforeach;?>
        </select>
        </div>
        </div>

        <div class="col-sm-12 col-md-6 col-lg-6 hightposition field zipcode required">
            <label class="label" for="zipcode"><span class="font_app"><?= $block->escapeHtml(__('Zipcode')) ?></span></label>
            <div class="control">
                <input name="zipcode" id="zipcode" title="<?= $block->escapeHtmlAttr(__('Zipcode')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('zipcode')) ?>" class="input-text" type="text"/>
            </div>
        </div>


          <div class="col-sm-12 col-md-6 col-lg-6 hightposition field subject required">
            <label class="label boxspaing" for="subject"><span class="font_app"><?= $block->escapeHtml(__('Subject')) ?></span></label>
            <div class="control boxspaing">
                <select name="subject" id="subject" title="<?= $block->escapeHtmlAttr(__('Subject')) ?>" value="<?= $block->escapeHtmlAttr($this->helper('Magento\Contact\Helper\Data')->getPostValue('subject')) ?>" class="input-text" type="text"/>

                <option selected value>Select One</option>
                <option value="Repair">Repair</option>
                <option value="Warranty">Warranty</option>
                <option value="General Feedback">General Feedback</option>
                </select>
            </div>
        </div>

         <div class="col-sm-12 col-md-12 col-lg-12 field comment required" style="width: 100% !important;">
            <label class="label messagees" for="comment"><span class="font_app"><?= $block->escapeHtml(__('Message')) ?></span></label>

                <textarea name="comment" id="comment" title="<?= $block->escapeHtmlAttr(__('What’s on your mind?')) ?>" class="input-text" type="text"><?= $block->escapeHtml($this->helper('Magento\Contact\Helper\Data')->getPostValue('comment')) ?></textarea>

        </div>

<!--design code start -->
             <div class="col-sm-12 col-md-12 col-lg-12" style="margin-bottom: 5px;">
                <div class="control submitt">    
                      <!--   <input type="checkbox" name="" value="on"> -->
               <label class="submit_head phone_rig">
                 <input type="checkbox" name="is_subscribed" id ="is_subscribed" checked="checked" value="on">Subscribe to receive exciting news.
                 <span class="submit_class"></span>
               </label>
              </div>

        </div>
               <div class="col-sm-12 col-md-12 col-lg-12" style="margin-bottom: 5px;">
            <div class="control submitt">    
                  <!--   <input type="checkbox" name="" value="on"> -->
           <label class="submit_head phone_rig">
             <input type="checkbox" name="retailer" value="on" id="retailer"> Yes, I would like my information sent to an authorized retailer in my area. 
             <span class="submit_class"></span>
           </label>
          </div>

        </div>
        <div class="clearfix style_bottom"></div>
    <!-- dev code --> 

        <?= $block->getChildHtml('form.additional.info') ?>

          <div class="col-sm-12 col-md-12 col-lg-12">
    <div class="actions-toolbar">
        <div class="primary">
            <input type="hidden" name="hideit" id="hideit" value="" />
            <button type="submit" title="<?= $block->escapeHtmlAttr(__('Submit')) ?>" class="action submit primary">
                <span><?= $block->escapeHtml(__('Submit')) ?></span>
            </button>
        </div>
    </div>
    </div> 

    </fieldset>

</form>
</div>
</div>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script type="text/javascript">
require([
    'jquery'
], function($){

jQuery(document).ready(function(){

jQuery("#contact-form").validate({

rules: {
      name: "required",
      last_name: "required",
      email: {
        required: true,
        email: true
      },
      telephone:{
        required:true,
        number:true
      },
      address1: "required",
      city: "required",
      stateprovince: "required",
      zipcode: "required",
      subject: "required",
      comment: "required"
  },
  messages: {
      name: "Please enter your First Name",
      last_name: "Please enter your Last Name",
      email: "Please enter a valid Email Address",
      telephone: {
      required: "Please enter your Phone Number",
      number:"Please enter numbers Only"
      },
      address1: "Please enter your Address",
      city: "Please enter your City",
      stateprovince: "Please enter your State/Province",
      zipcode: "Please enter your Zipcode",
      subject: "Please enter your Subject",
      comment: "Please enter your Message"
},
  });
});

});
</script>

/var/www/html/magento/app/code/Amy/Contactform/Model/Mail.php:

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Amy\Contactform\Model;

use Magento\Framework\Mail\Template\TransportBuilder;
use Magento\Framework\Translate\Inline\StateInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\App\Area;
use Magento\Contact\Model\ConfigInterface;

class Mail extends \Magento\Contact\Model\Mail implements \Magento\Contact\Model\MailInterface
{
    /**
     * @var ConfigInterface
     */
    private $contactsConfig;

    /**
     * @var TransportBuilder
     */
    private $transportBuilder;

    /**
     * @var StateInterface
     */
    private $inlineTranslation;

    /**
     * @var StoreManagerInterface
     */
    private $storeManager;

    /**
     * Initialize dependencies.
     *
     * @param ConfigInterface $contactsConfig
     * @param TransportBuilder $transportBuilder
     * @param StateInterface $inlineTranslation
     * @param StoreManagerInterface|null $storeManager
     */
    public function __construct(
        ConfigInterface $contactsConfig,
        TransportBuilder $transportBuilder,
        StateInterface $inlineTranslation,
        StoreManagerInterface $storeManager = null
    ) {
        $this->contactsConfig = $contactsConfig;
        $this->transportBuilder = $transportBuilder;
        $this->inlineTranslation = $inlineTranslation;
        $this->storeManager = $storeManager ?: ObjectManager::getInstance()->get(StoreManagerInterface::class);
    }

    /**
     * Send email from contact form
     *
     * @param string $replyTo
     * @param array $variables
     * @return void
     */
    public function send($recipient, $replyTo, array $variables)
{
    /** @see \Magento\Contact\Controller\Index\Post::validatedParams() */
    $replyToName = !empty($variables['data']['name']) ? $variables['data']['name'] : null;
    if ($recipient == 'Repair'){
        $emails = ['[email protected]'];  // add your email list
    }else if ($recipient == 'General Feedback'){
        $emails = ['[email protected]','[email protected]'];  // add your email list 
     }else{
        $emails = ['[email protected]'];
    }

    $this->inlineTranslation->suspend();
    try {
        $transport = $this->transportBuilder
            ->setTemplateIdentifier($this->contactsConfig->emailTemplate())
            ->setTemplateOptions(
                [
                    'area' => Area::AREA_FRONTEND,
                    'store' => $this->storeManager->getStore()->getId()
                ]
            )
            ->setTemplateVars($variables)
            ->setFrom($this->contactsConfig->emailSender())
            ->addTo($emails)
            ->setReplyTo($replyTo, $replyToName)
            ->getTransport();

        $transport->sendMessage();
    } finally {
        $this->inlineTranslation->resume();
    }
}
}

Any one Help me on this please..

/var/www/html/magento/app/code/Amy/Contactform/etc/di.xml:

<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
     <preference for="Magento\Contact\Block\ContactForm" type="Amy\Contactform\Block\ContactForm" />
    <preference for="Magento\Contact\Model\Mail" type="Amy\Contactform\Model\Mail" />
     <preference for="Magento\Contact\Controller\Index\Post" 
        type="Amy\Contactform\Controller\Index\Post" />
</config>
6
  • did you execute di:compile command after overriding? and post your di.xml
    – Keyur Shah
    Apr 15, 2019 at 10:11
  • I am overriding all the above 3 files.
    – Amy
    Apr 15, 2019 at 10:12
  • Yes, I have executed di: compile..
    – Amy
    Apr 15, 2019 at 10:12
  • I have updated my di.xml file
    – Amy
    Apr 15, 2019 at 10:24
  • @Amy I think you better remove the null default for your logger LoggerInterface $logger = null omit the =null
    – fmsthird
    Apr 15, 2019 at 10:27

1 Answer 1

0

Try this in your Post.php:

<?php
/**
 *
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Amy\Contactform\Controller\Index;

use Magento\Contact\Model\ConfigInterface;
use Magento\Contact\Model\MailInterface;
use Magento\Framework\App\Action\Context;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\Controller\Result\Redirect;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\HTTP\PhpEnvironment\Request;
use Psr\Log\LoggerInterface;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\DataObject;
use Magento\Newsletter\Model\SubscriberFactory;

class Post extends \Magento\Contact\Controller\Index\Post
{
    /**
     * @var DataPersistorInterface
     */
    private $dataPersistor;

    /**
     * @var ConfigInterface
     */
    private $contactsConfig;

    /**
     * @var Context
     */
    private $context;

    /**
     * @var MailInterface
     */
    private $mail;

    /**
     * @var LoggerInterface
     */
    private $logger;

    /**
     * @var \Magento\Newsletter\Model\SubscriberFactory
     */
    protected $subscriberFactory;


    /**
     * Post constructor.
     * @param Context $context
     * @param ConfigInterface $contactsConfig
     * @param MailInterface $mail
     * @param DataPersistorInterface $dataPersistor
     * @param SubscriberFactory $subscriberFactory
     * @param LoggerInterface|null $logger
     */
    public function __construct(
        Context $context,
        ConfigInterface $contactsConfig,
        MailInterface $mail,
        DataPersistorInterface $dataPersistor,
        SubscriberFactory $subscriberFactory,
        LoggerInterface $logger = null
    ) {
        parent::__construct($context, $contactsConfig, $mail, $dataPersistor);
        $this->contactsConfig = $contactsConfig;
        $this->context = $context;
        $this->mail = $mail;
        $this->dataPersistor = $dataPersistor;
        $this->subscriberFactory = $subscriberFactory;
        $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class);
    }

    /**
     * Post user question
     *
     * @return Redirect
     */
    public function execute()
    {

        if (!$this->isPostRequest()) {
            return $this->resultRedirectFactory->create()->setPath('*/*/');
        }
        try {
            $this->sendEmail($this->validatedParams());

            //  subscribe to newsletter---------CODE START
            if ($this->getRequest()->getParam('is_subscribed', false)) {
                $this->subscriberFactory->create()->subscribe($this->getRequest()->getParam('email'));
            }
            //  subscribe to newsletter---------CODE END


            $this->messageManager->addSuccessMessage(
                __('Thanks for contacting us. Your inquiry was submitted and will be responded to you as soon as possible.')
            );
            $this->dataPersistor->clear('contact_us');
        } catch (LocalizedException $e) {
            $this->messageManager->addErrorMessage($e->getMessage());
            $this->dataPersistor->set('contact_us', $this->getRequest()->getParams());
        } catch (\Exception $e) {
            $this->logger->critical($e);
            $this->messageManager->addErrorMessage(
                __('An error occurred while processing your form. Please try again later.')
            );
            $this->dataPersistor->set('contact_us', $this->getRequest()->getParams());
        }
        return $this->resultRedirectFactory->create()->setPath('contact/index');
    }

    /**
     * @param array $post Post data from contact form
     * @return void
     */
    private function sendEmail($post)
    {
        $this->mail->send(
            $post['subject'],
            $post['email'],
            ['data' => new DataObject($post)]
        );
    }

    /**
     * @return bool
     */
    private function isPostRequest()
    {
        /** @var Request $request */
        $request = $this->getRequest();
        return !empty($request->getPostValue());
    }

    /**
     * @return array
     * @throws \Exception
     */
    private function validatedParams()
    {
         /**$request = $this->getRequest();
         if (trim($request->getParam('name')) === '') {
             throw new LocalizedException(__('Name is missing'));
         }
         if (trim($request->getParam('lastname')) === '') {
             throw new LocalizedException(__('LastName is missing'));
         }
        if (trim($request->getParam('address1')) === '') {
             throw new LocalizedException(__('Address1 is missing'));
         }
         if (trim($request->getParam('address2')) === '') {
             throw new LocalizedException(__('Address2 is missing'));
         }
         if (trim($request->getParam('city')) === '') {
             throw new LocalizedException(__('City is missing'));
         }
         if (trim($request->getParam('stateprovince')) === '') {
             throw new LocalizedException(__('State is missing'));
         }
         if (trim($request->getParam('zipcode')) === '') {
             throw new LocalizedException(__('Zipcode is missing'));
         }
         if (trim($request->getParam('subject')) === '') {
             throw new LocalizedException(__('Subject is missing'));
         }
         if (trim($request->getParam('comment')) === '') {
             throw new LocalizedException(__('Comment is missing'));
         }

         if (false === \strpos($request->getParam('email'), '@')) {
             throw new LocalizedException(__('Invalid email address'));
         }
         if (trim($request->getParam('hideit')) !== '') {
            throw new \Exception();
         }
       return $request->getParams();*/
    }
}
7
  • I am still getting the same error in line ['data' => new DataObject($post)]. even after updating your answer.
    – Amy
    Apr 15, 2019 at 11:00
  • which part is that in your post file?
    – fmsthird
    Apr 15, 2019 at 11:03
  • is it same error or new error?
    – fmsthird
    Apr 15, 2019 at 11:04
  • Yes, it is the same error. It is my post.php file.
    – Amy
    Apr 15, 2019 at 11:04
  • @Amy try updated answer
    – fmsthird
    Apr 15, 2019 at 11:06

Your Answer

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

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