Возвращаемый bool выдает ошибку "Недопустимый тип возвращаемого значения" для контроллера Ajax


Я хочу вызвать этот контроллер через Ajax и заставить его вернуть значение true или false. все методы работают правильно, однако я получаю ошибку

Недопустимый тип возвращаемого значения C:\Sites\retracted\wwwroot\vendor\magento\framework\App\Bootstrap.php (258): Magento\Фреймворк\Приложение\Http->запуск()

Поэтому я предполагаю, что с помощью действия extends я не могу просто вернуть логическое значение - но что должно быть, чтобы я мог вернуть bool?

use \Magento\Framework\App\Action\Action;

class IsEmailRegistered extends Action implements \Magento\Framework\DataObject\IdentityInterface
{

    ...

    public function execute()
    {
        $result = $this->voucherHelper->validateEmail($email);

        return $result;
    }
}
Author: Siarhey Uchukhlebau, 2016-09-08

1 answers

Попробуйте следующий пример:

protected $resultJsonFactory;

/**
 * @param Context $context
 * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
 */
public function __construct(
    Context $context,
    \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
)
{
    $this->resultJsonFactory = $resultJsonFactory;
    parent::__construct($context);
}

/**
 * Collect relations data
 *
 * @return \Magento\Framework\Controller\Result\Json
 */
public function execute()
{
    $result = $this->voucherHelper->validateEmail($email);
    /** @var \Magento\Framework\Controller\Result\Json $result */
    $resultJson = $this->resultJsonFactory->create();

    return $resultJson->setData(['success' => $result]);
}

Но в вашем коде вы должны проанализировать ответ как JSON.

 10
Author: Siarhey Uchukhlebau, 2016-09-08 12:30:41