蛋糕如何设置从控制器传递到视图的变量的默认值



我还是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 文档。

最新更新