0

嗨,我想让蛋糕在档案标准中显示全名。我需要以“LASTNAME Firstname”格式显示名称,姓氏全部大写,名字的第一个字母大写。我的模型中有 first_name 和 last_name 并设法通过虚拟字段将它们组合在一起,但是在使用两个不同的 caps mods 时遇到了问题。

谢谢,麻烦您了。

4

3 回答 3

0

在您的 afterfind 回调中: strtoupper(lastname) 和 ucfirst(strtolower($firstname)) 或者您可以在您的 beforesave 中执行此操作并将这样的字段保存在您的数据库中。

或者正如马克所建议的那样:为什么不在你的观点中这样做呢?

于 2013-10-18T20:34:59.940 回答
0
public $virtualFields = array(
   'vf_full_name' => 'CONCAT(UPPER(`last_name`), " ", UPPER(SUBSTRING(`first_name`, 1, 1)), LOWER(SUBSTRING(`first_name`, 2)))',
);
于 2013-10-19T23:00:14.400 回答
0

在你看来这样做。以这种格式将数据保存在数据库中只会导致将来令人头疼。例如,如果您以全大写格式(“DIMAGGIO”)保存姓氏“DiMaggio”,则不能将其转换为全小写并将第一个字母大写;这给了你“Dimaggio”,这是错误的。

正如我所说,只要按照你的观点去做。名字和姓氏是分开的,这很棒。

<p class="name">
  <span class="last-name"><?php echo h($user['User']['last_name']); ?></span>,
  <span class="first-name"><?php echo h($user['User']['first_name']); ?></span>
</p>

我还将姓氏转换为大写的 CSS 而不是 HTML,这更具语义。

.last-name {
    text-transform: uppercase;
}

strtoupper()更改 CSS 规则比浏览视图文件和删除包含在函数调用中的字符串更容易。

于 2013-10-19T23:28:36.130 回答