尝试调用Controller-> createAction()时发生错误

pdu*_*ler 1 typo3 extbase

我试图用extbase创建一些东西,但是我得到的错误信息并不是很有帮助.我将blog_example扩展作为指南.一个(可能)重要的区别是:我没有数据库表,因为我想编写一个通过REST连接到外部服务器的自定义域存储库.

实际的错误消息(显示在插件上方,而不是异常消息):

尝试调用Tx_MyExt_Controller_SubscriptionController-> createAction()时发生错误


Classes/Controller/SubscriptionController:
剥离重要部分.

class Tx_MyExt_Controller_SubscriptionController extends Tx_Extbase_MVC_Controller_ActionController 
{
    /**
     * @var Tx_MyExt_Domain_Repository_SubscriberRepository
     */
    protected $subscriberRepository;


    /**
     * @return void
     */
    public function initializeAction()
    {
        $this->subscriberRepository = t3lib_div::makeInstance('Tx_MyExt_Domain_Repository_SubscriberRepository');
    }


    /**
     * @param Tx_MyExt_Domain_Model_Subscriber $subscriber
     * @dontvalidate $subscriber
     * @return  string      The rendered view
     */
    public function newAction(Tx_MyExt_Domain_Model_Subscriber $subscriber = null)
    {
            $this->view->assign('subscriber', $subscriber);
    }

    /**
     * @param Tx_MyExt_Domain_Model_Subscriber $subscriber
     * @return  string      The rendered view
     */
    public function createAction(Tx_MyExt_Domain_Model_Subscriber $subscriber)
    { }

}
Run Code Online (Sandbox Code Playgroud)

类/域/型号/用户

class Tx_MyExt_Domain_Model_Subscriber extends Tx_Extbase_DomainObject_AbstractEntity 
{
    /**
     * @var string
     * @dontvalidate
     */
    protected $email = '';



    /**
     * @param string $email
     * @return void
     */
    public function setEmail($email) 
    {
        $this->email = $email;
    }

    /**
     * @return string
     */
    public function getEmail() 
    {
        return $this->email;
    }
}
Run Code Online (Sandbox Code Playgroud)

资源/个人/模板/认购/新

<f:form action="create" controller="Subscription" objectName="Subscriber" object="{subscriber}" method="post">
    <f:form.textfield property="email"></f:form.textfield>
    <f:form.submit value="submit"></f:form.submit>
</f:form>
Run Code Online (Sandbox Code Playgroud)

事实

  • 添加$subscriber = null删除邮件.但$subscriber就是null那么
  • A var_dump($this->request->getArguments());显示表单的字段
  • 有一个索引操作,它也是第一个定义的操作 ext_localconf.php

我找到的提示和解决方案对我不起作用,所以我希望有人能引导我走向正确的方向.

alp*_*nyx 6

我有同样的错误.

如果将Model作为参数传递给方法,它还将验证模型字段.

我在我的模型属性上有这个注释:

/**
 *
 * @var \string
 * @validate NotEmpty
 */
Run Code Online (Sandbox Code Playgroud)

它验证"@validate"注释.数据库中的字段为空,因此我收到了错误消息

An error occurred while trying to call ...
Run Code Online (Sandbox Code Playgroud)

如果有更好的错误消息会很好.您需要自定义验证注释或验证数据库中的属性不为空

希望它对某人有帮助