0

我有一个运行良好的选择输入字段,但有些用户不在此列表中,尽管数据库看起来不错并且我没有条件。我将选项文本与 $virtualFields 看起来像$virtualFields = array( 'full_name_withTitle' => 'CONCAT(lastname, " ", firstname, " (", title, ")")'

尽管我有括号中的标题,但当没有值时,没有值的空行至少应该有“()”。

该字段如下所示:

选择缺少行的输入字段

任何提示

endo
4

3 回答 3

1

您应该在定义 virtualFields 时使用以下代码:

$virtualFields = array( 'full_name_withTitle' => 'CONCAT(IF(lastname IS NULL '', lastname), " ", IF(firstname IS NULL, '', firstname), " (", IF(title IS NULL, '', title), ")")'

这个链接会帮助你。

于 2012-07-25T04:53:24.917 回答
1

尽管我有括号中的标题,但当没有值时,没有值的空行至少应该有“()”

否。如果一个参数为 null,则 CONCAT 返回 null。

连接文档

如果任何参数为 NULL,则 CONCAT() 返回 NULL。

于 2012-07-24T15:50:56.990 回答
0

另一种可能性是你有字符编码问题,也许你的数据库字段有非 UTF8 编码的字符串,但 PHP/CakePHP 需要 UTF8。具体来说(或它包装htmlspecialchars()的 Cake's ),如果发现无效字符,它将默默地输出一个空字符串。h()

修复此类问题有时会很棘手,因为字符编码不可见。如果整个数据库很小且非 UTF8,有时最简单的方法是将数据库转储为 SQL,使用编辑器或命令行工具进行转换,然后重新导入数据库。一些快速搜索发现了一些关于该主题的可能 有用的帖子。

于 2012-07-24T17:21:10.677 回答