我还是CakePHP的新手。
我有一个控制器,当满足某些条件时,它会设置变量"V1"。
现在,我想使这个"V1"的默认值为"或null,当我不设置它时,cakephp不会抛出通知"错误:变量'V1'未设置"。
我尝试<?= $V1 = '' ?>
视图,但这导致"V1"始终为空,即使我之前在控制器上设置了它。
问题:我应该忽略此通知,还是有办法为从控制器传递到 View 的变量设置默认值?还是有其他办法?
谢谢:D
问题:我应该忽略此通知,还是有办法为从控制器传递到 View 的变量设置默认值?还是有其他办法?
所有通知和警告都应修复 - 始终,无一例外。不这样做可能会导致应用程序中的调试问题令人讨厌。不修复它们只是不好的做法。因此,要么确保始终设置变量,要么在视图中检查它。
在控制器中执行此操作将确保它始终设置为默认值为 null
的视图。
$this->set('v1', isset($v1) ? $v1 : null)
带有合并运算符的 PHP7。
$this->set('v1', $v1 ?? null);
但是,我更喜欢这里的三元运算符,因为它比合并运算符更好阅读 - 恕我直言。
这应该有效
<?= isset($v1)?$v1:''?>
编辑:固定结束标签
只是为了补充 burzum 的答案。如果您使用的是 PHP 7,您还可以在控制器中使用 null 合并运算符:-
$this->set('v1', $v1 ?? null);
有关更多详细信息,请参阅 PHP 文档。