Modx TV multi select 列表未保存值
Modx TV multi select list not saving values
我有一个正在评估片段的 TV multi select 列表类型:
@EVAL return $modx->runSnippet('getFeaturedResourceTree');
正在评估这个片段:
<?php
$output = array();
$context = $modx->resource->get('context_key');
$sql = "select * from modx_site_content where context_key = '$context' order by `pagetitle`;";
$results = $modx->query($sql);
foreach($results as $result){
$output[] = $result['pagetitle'].'=='.$result['id'];
}
$output = implode('||', $output);
echo $output;
return;
这在管理器中确实有效,我可以 select 并在列表中选择多个资源。但是,当我保存电视时,实际上什么也没有保存。数据库中不存在 TV 值,当我重新加载资源时,TV 字段为空白。
这里可能是什么问题?
我相当确定您可以使用 @SELECT
绑定而不是 @EVAL
来完成您想要做的事情。这有两个潜在的好处:
@EVAL
是邪恶的,哈哈。请注意,并非所有时候都可以使用 @EVAL
,但我个人总是非常努力地寻找替代方案,每当我考虑使用 @EVAL
时。
我将向您展示的方法过去对我有用,所以我推测它对您也有用。
@SELECT pagetitle, id FROM modx_site_content WHERE context_key = 'web' ORDER BY `pagetitle`
如果您使用 @EVAL
因为您有多个上下文并且您想要当前正在编辑的资源的上下文,那么您可以使用您的代码段,但我会尝试:
- 而不是回显你的输出,return它。
- 调用块中的代码片段,并在测试页上呈现块以确保它具有您想要的输出,完全按照电视输入选项的格式进行格式化。
- 如果 Chunk 输出通过测试,则使用
@CHUNK
绑定将其调用到 TV Input Options 字段中。
请注意:我不记得当前资源在电视中是否可用 $modx->resource
或 $resource
,但您可能需要仔细检查一下。
我有一个正在评估片段的 TV multi select 列表类型:
@EVAL return $modx->runSnippet('getFeaturedResourceTree');
正在评估这个片段:
<?php
$output = array();
$context = $modx->resource->get('context_key');
$sql = "select * from modx_site_content where context_key = '$context' order by `pagetitle`;";
$results = $modx->query($sql);
foreach($results as $result){
$output[] = $result['pagetitle'].'=='.$result['id'];
}
$output = implode('||', $output);
echo $output;
return;
这在管理器中确实有效,我可以 select 并在列表中选择多个资源。但是,当我保存电视时,实际上什么也没有保存。数据库中不存在 TV 值,当我重新加载资源时,TV 字段为空白。
这里可能是什么问题?
我相当确定您可以使用 @SELECT
绑定而不是 @EVAL
来完成您想要做的事情。这有两个潜在的好处:
@EVAL
是邪恶的,哈哈。请注意,并非所有时候都可以使用@EVAL
,但我个人总是非常努力地寻找替代方案,每当我考虑使用@EVAL
时。我将向您展示的方法过去对我有用,所以我推测它对您也有用。
@SELECT pagetitle, id FROM modx_site_content WHERE context_key = 'web' ORDER BY `pagetitle`
如果您使用 @EVAL
因为您有多个上下文并且您想要当前正在编辑的资源的上下文,那么您可以使用您的代码段,但我会尝试:
- 而不是回显你的输出,return它。
- 调用块中的代码片段,并在测试页上呈现块以确保它具有您想要的输出,完全按照电视输入选项的格式进行格式化。
- 如果 Chunk 输出通过测试,则使用
@CHUNK
绑定将其调用到 TV Input Options 字段中。
请注意:我不记得当前资源在电视中是否可用 $modx->resource
或 $resource
,但您可能需要仔细检查一下。