[英]CakePHP - can't get session variable in view
在ProjectsController.php中,我設置了一個會話變量,因為我希望該信息可以在所有控制器,模型和視圖中訪問:
$this->Session->write('Project.title', $this->Project->title);
現在,當我嘗試從“項目”視圖訪問它時,如下所示:
<p>Project: <strong>
<?php if (isset($session->read('Project.title'))):
$session->read('Project.title');
?>
<?php else: ?>
Not selected
<?php endif; ?>
</strong></p>
我收到以下錯誤:
Fatal error: Can't use method return value in write context
參考上面代碼的第二行。
我瀏覽過CakePHP文檔並進行了搜索,那么我在這里做錯了什么?
謝謝!
編輯:
我也嘗試過使用:
$this->Session->read('Project.title')
導致出現相同的錯誤消息。
您應該執行PHP偶爾告訴您的操作:)錯誤消息非常清楚。 您不能以這種方式使用isset()和empty()。 它們僅直接使用變量,而不使用方法。 所以用
<?php if ($this->Session->check('Project.title')) {
echo $this->Session->read('Project.title');
} ?>
如食譜中所述
你也可以
<?php
$title = $this->Session->read('Project.title');
if ($title) {
echo $title;
} ?>
甚至
<?php if ($title = $this->Session->read('Project.title')) {
echo $title;
} ?>
最后一個不是cakephp編碼約定。
isset()
無法處理此類功能。 存儲該$session
對象的read()
函數的返回值, 然后在if()
條件內測試該變量:
$title = $session->read('Project.title');
echo ($title) ? $title : '';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.