【问题标题】:Typo3 extbase validating custom or manual objectsTypo3 extbase 验证自定义或手动对象
【发布时间】:2013-09-12 12:39:36
【问题描述】:

我已经创建了 extbase 扩展,由于某种原因我需要在创建操作中手动创建对象。

我的创建操作如下所示,

/**
* action create
*
* @return void
*/
public function createAction() {
$newObj = new \TYPO3\Myext\Domain\Model\Modelname();
$newObj->setMyval('value');
$this->myrepository->add($newObj);
}

这里的问题是即使我在模型中提到@validate NotEmpty,它也没有验证要求字段、验证码等。 那么如何对手动创建的对象进行验证呢? 它应该抛出错误以形成开箱即用的功能。 谢谢。

【问题讨论】:

  • 您不能在 extbase 中使用 new。请始终使用对象管理器。您的对象也应由视图移交。如果您手动将其添加到存储库,则不使用验证。

标签: validation typo3 extbase


【解决方案1】:

开箱即用验证仅在根据您的控制器操作签名从 GET/POST 参数构造模型对象时触发。

【讨论】:

  • 这里我为每个字段的 setFunctions 添加 post 参数。在 add() 之前是否有任何特定的代码要添加?
【解决方案2】:

它应该看起来像这样:

   /**
    * action create
    * @param \TYPO3\Myext\Domain\Model\Modelname $newObject
    * @return void
    */
    public function createAction(\TYPO3\Myext\Domain\Model\Modelname $newObject) {
        $this->myrepository->add($newObj);
    }

查看extension_builder,创建一个模型,然后为您生成新/创建操作。这将为您提供有关创建操作以及呈现表单的新操作的一个很好的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多