下拉列表遗漏了一些值

时间:2012-07-24 12:47:24

标签: cakephp select concat form-fields

我有一个运行良好的select-input-field,但是有些用户不在这个列表中,尽管数据库看起来很好而且我没有条件。我将选项文本与$ virtualFields结合起来,看起来像$virtualFields = array( 'full_name_withTitle' => 'CONCAT(lastname, " ", firstname, " (", title, ")")'

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

该字段如下:

select input field with missing lines

任何提示apreciated

endo

3 个答案:

答案 0 :(得分:1)

  

尽管我的括号中的标题没有任何值的空行应该至少在没有值的时候有“()”

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

CONCAT doc

  

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

答案 1 :(得分:1)

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

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

This link可以帮到你。

答案 2 :(得分:0)

另一种可能性是你有字符编码问题,也许你的数据库字段有非UTF8编码字符串,但PHP / CakePHP期望UTF8。特别是htmlspecialchars()(或它包装的Cake h()),will silently output an empty string如果找到无效字符。

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