- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为创建表单构建一个预览页面。在 previewAction
中,我将记录的“已删除”属性设置为“1”,因为在 BE 中,列表模块用于批准插入的记录 - 因此,如果记录从未最终保存,则无论如何都会将其删除。
问题:我可以创建记录 (deleted=1
) - 我可以跳回表单(没有历史记录,因为我必须保留创建的对象)。但如果我再次提交,属性映射会告诉我
未找到标识为“3”的 MyModel 类型的对象。
当然那是因为它被删除了。存储库中忽略已删除的设置此处不会执行操作。
是的,我可以通过手动填写所有内容来绕过 Extbase 魔法,但这不是我想要的。
这是了解我正在尝试的操作
/**
* action preview
*
* @param MyModel
* @return void
*/
public function previewAction(MyModel $newModel)
{
//check if model was already saved
$uid = $this->request->hasArgument('uid') ? this->request->getArgument('uid') : 0;
if($uid){
$newModel = $this->myRepository->findDeletedByUid($uid);
$this->myRepository->update($newModel);
}
else{
$newModel->setDeleted(true);
$this->myRepository->add($newModel);
}
$this->view->assign('ad', $newModel);
$this->persistenceManager->persistAll();
$uid = $this->persistenceManager->getIdentifierByObject($newModel);
$this->view->assign('uid', $uid);
}
有什么想法吗?
最佳答案
Extbase 默认查询设置禁止删除对象。
由于您已经在存储库中声明了自定义查询 findDeletedByUid(),因此您只需将其设置为包含已删除的记录即可。然而,重要的是,如果您想使用该对象调用 Controller 操作,则必须在调用操作之前检索它。为此使用初始化操作。初始化将在操作之前自动调用。
如果要设置对象是否被删除,您还需要在域模型中定义属性、getter 和 setter,并在 tca 中定义适当的定义,以使数据映射器能够访问该列。
在存储库中:
public function findDeletedByUid($uid) {
$query = $this->createQuery();
$query->getQuerySettings()->setIncludeDeleted(true);
$query->matching(
$query->equals('uid',$uid)
);
return $query->execute();
}
在您的 Controller 类中:
/**
* initialize action previewAction
* Overrides the default initializeAction with one that can retrieve deleted objects
*/
public function initializePreviewAction(){
if( $this->request->hasArgument('mymodel') ){
$uid = $this->request->getArgument('mymodel');
if( $mymodel = $this->mymodelRepository->findDeletedByUid($uid) ){
$this->request->setArgument($mymodel);
} else {
// handle non retrievable object here
}
} else {
// handle missing argument here
}
}
在您的域模型中:
...
/**
* @var bool
*/
protected $deleted;
/**
* @return bool
*/
public function getDeleted() {
return $this->deleted;
}
/**
* @param bool $deleted
*/
public function setDeleted($deleted) {
$this->deleted = $deleted;
}
在你的 tca.php 中
...
'deleted' => array(
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.deleted',
'config' => array(
'type' => 'check',
),
),
关于typo3 - 已删除记录的 Extbase 属性映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37672272/
考虑这两个程序及其尝试编译。 #include int main() { std::vector a; // Errors centered around `Typo` being an i
如何才能检测到拼写错误,但仅限于特定短语。另一种思考方式是如何检测某个正则表达式的拼写错误。 例如,我不想要一个通用的拼写错误查找器,我在上面找到了多个资源。我不想要一个通用的拼写检查器,我又在上面找
我现在正在研究算法,我遇到过一个例子,我的回答是 Infinite loop但在正确答案中,它说它是 O(log2n) . function someFunc(n) { for(var i =
IntelliJ IDEA 具有检查拼写的功能。在分析概述中,我可以看到发现了多少拼写错误,例如发现 12 个拼写错误。在代码中,它们使用绿色波浪线突出显示。 但是,我发现手动查找那些波浪线非常困难。
我是 still通过“七周内的七种语言”,我发现了一个错字或我不明白的东西。 挑战之一是: Write a function that takes an argument x and returns
我正在从 Jquery 调用 WCF Rest 服务,如下所示。在我的 WCF Rest 服务中,安全模式是传输。下面的代码返回“访问被拒绝”错误。 function GetRest
引用自 Resources Documentation 的 smallestWidth 部分安卓: Thus, the value you use should be the actual small
IntelliJ IDEA 具有检查拼写的检查功能。在分析概览中,我可以看到发现了多少拼写错误,例如发现 12 个拼写错误。在代码中,它们使用绿色波浪线突出显示。 但是,我发现手动查找那些波浪线非常困
当命名变量或提供字符串参数时,Android Studio 似乎对我如何标记事物有问题。 有没有办法关闭它? 最佳答案 是的,打开 Preferences -> Editor -> Inspectio
我已将数据添加到 solr。 名称字段值为:“batman”、“bat man”、“bat-man” 因此,如果用户搜索“btman”,结果应显示搜索中的所有上述值。 我发现这样的查询:localho
use YAML::XS; local $YAML::XS::DumpCode=1; ... 我收到警告: Name "YAML::XS::DumpCode" used only once: poss
我在 react native 应用程序中遇到了 eslint 的问题。我正在为我的组件声明样式属性。它看起来像: Component.propTypes = { styles: ViewPro
我的一个函数加密一个字符串,我的一个测试验证它发生了。自然,像 sldjf982389 这样的字符串不被识别为有效的英语单词,所以 IntelliJ提示。 如果有办法在不向字典中添加垃圾的情况下抑制这
我在云托管中托管了一个 wordpress 网站。我注意到 apache error_log 文件大小增长得非常快,我发现了这个错误(Kirki: Typo found in field post_t
我经常被指向错误博客引擎的来源,即 http://typosphere.org/stable.tar.gz但是,如果我下载并执行以下操作:捆绑安装等。它会作为单独的引擎运行。 我尝试将拼写错误安装为
我正在使用 cakePHP 创建待办事项应用程序。 CakePHP 会为您创建查询等。这就是为什么不能出现拼写错误的原因。 错误: Error: SQLSTATE[42S22]: Column not
我有一个脚本,它列出了特定目录中可能的文件。该代码工作正常,但如何避免此警告? #!/usr/bin/perl use strict; use warnings; use autodie; my $l
在Lua网站上https://www.lua.org/pil/16.1.html ,有这段代码 function Account:new (o) o = o or {} -- create o
在我的 Gruntfile.js 中,我将咖啡任务配置为如此,并且 src/ 目录中存在一个文件 script.coffee: coffee: { dist: { files:
我的问题是关于行(编辑:19),其中新的 PrintWriter 是使用将 FileWriter fw 作为参数的构造函数创建的。如果稍后在实际写作中不使用,我不明白将 BufferedWriter
我是一名优秀的程序员,十分优秀!