Cakephp 视图助手
Cakephp View Helper
每当我在视图文件中显示用户名时,我都会使用:
echo $user['User']['name'];
用户 table 也有一个 'company_name' 字段。如果用户列出了公司名称(在大多数情况下,但不是全部),我想显示他们的公司名称(如果没有,我想使用 'name' 字段)。代码看起来像:
if(isset($user['User']['company_name']) && $user['User']['company_name'] != '') {
echo $user['User']['company_name'];
} else {
echo $user['User']['name'];
}
在多个视图文件中处理此问题的正确方法是什么?我应该为它创建一个助手吗?
由于这个特定的用例只是一小部分表示逻辑,因此在 Element 而不是 Helper 的范围内构建它对我来说更有意义。
现在,如果在未来的某个时间点(甚至现在)您决定要扩展更多类似于此表示逻辑的功能,可能以 UsersHelper 的形式定义各种显示与当前用户相关的逻辑,然后将该功能封装在 Helper 中是明智的。
这是一个很好的例子,可以帮助您开始使用 Elements:
// In src/Template/Element/name_display.ctp
if(isset($user['User']['company_name']) && $user['User']['company_name'] != '') {
echo $user['User']['company_name'];
} else {
echo $user['User']['name'];
}
在您的视图文件中:
// Echo this wherever you need the name displayed
echo $this->element('name_display', [
'user' => $user // Sets the $user viewVar in the element
]);
为了完整起见,在您的控制器中:
$this->set('user', $user);
在业余时间,最好查看 Cake 中包含的一些核心助手的手册,了解它们的构造方式,以便更好地了解 Cake 中的用例你会想要创建一个助手。
祝你好运!
每当我在视图文件中显示用户名时,我都会使用:
echo $user['User']['name'];
用户 table 也有一个 'company_name' 字段。如果用户列出了公司名称(在大多数情况下,但不是全部),我想显示他们的公司名称(如果没有,我想使用 'name' 字段)。代码看起来像:
if(isset($user['User']['company_name']) && $user['User']['company_name'] != '') {
echo $user['User']['company_name'];
} else {
echo $user['User']['name'];
}
在多个视图文件中处理此问题的正确方法是什么?我应该为它创建一个助手吗?
由于这个特定的用例只是一小部分表示逻辑,因此在 Element 而不是 Helper 的范围内构建它对我来说更有意义。
现在,如果在未来的某个时间点(甚至现在)您决定要扩展更多类似于此表示逻辑的功能,可能以 UsersHelper 的形式定义各种显示与当前用户相关的逻辑,然后将该功能封装在 Helper 中是明智的。
这是一个很好的例子,可以帮助您开始使用 Elements:
// In src/Template/Element/name_display.ctp
if(isset($user['User']['company_name']) && $user['User']['company_name'] != '') {
echo $user['User']['company_name'];
} else {
echo $user['User']['name'];
}
在您的视图文件中:
// Echo this wherever you need the name displayed
echo $this->element('name_display', [
'user' => $user // Sets the $user viewVar in the element
]);
为了完整起见,在您的控制器中:
$this->set('user', $user);
在业余时间,最好查看 Cake 中包含的一些核心助手的手册,了解它们的构造方式,以便更好地了解 Cake 中的用例你会想要创建一个助手。
祝你好运!