gpt4 book ai didi

cakephp - 在 CakePHP 中处理错误时设置页面标题

转载 作者:行者123 更新时间:2023-12-04 05:33:56 26 4
gpt4 key购买 nike

在处理诸如 404 之类的错误时,我需要将页面标题从默认的“错误”更改。所以我需要将我的标题放在我的布局的变量 $title_for_layout 中。我尝试通过更改 app/Config/core.php 中的配置并将页面标题设置为 Controller 来创建自定义错误处理功能

Configure::write('Error.handler', function($code, $description, $file = null, $line = null, $context = null) {
$this->set('title_for_layout', 'Vyskytla sa chyba');
});

正如我所料,我收到了一个 PHP 错误(第 59 行是代码示例中的第二行)
Fatal error: Using $this when not in object context in /var/www/web/app/Config/core.php on line 59

那么如何为我的 default.ctp 布局设置标题?
谢谢。

最佳答案

在 CakePHP 2.0 中,您可以尝试以下代码来实现您需要的功能。

试试这个:

/app/Config/core.php

异常渲染需要设置为 AppExceptionRender .示例:

Configure::write('Exception', array(
'handler' => 'ErrorHandler::handleException',
'renderer' => 'AppExceptionRenderer',
'log' => true
));

/app/Controller/ErrorsController.php
class ErrorsController extends AppController {
public $name = 'Errors';

public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('error404');
}

public function error404() {
//$this->layout = 'default';
$this->set('title_for_layout', 'Vyskytla sa chyba');
}
}

/app/Lib/Error/AppExceptionRenderer.php
App::uses('ExceptionRenderer', 'Error');

class AppExceptionRenderer extends ExceptionRenderer {

public function notFound($error) {
$this->controller->redirect(array('controller' => 'errors', 'action' => 'error404'));
}
}

/app/View/Errors/error404.ctp
<div class="inner404">
<h2>404 Error - Page Not Found</h2>
</div>

将其插入您需要的位置: throw new NotFoundException();
引用: CakePHP 2.0 - How to make custom error pages?

对于 < CakePHP 2.x:

如果您在 app/views/errors 中创建自定义错误页面 View ,则在
您可以使用该错误 View 页面上的 php 部分:
$this->setLayout("Title for the error page here");

然后当你看到错误页面时,它会有你的标题。再次,那个
是如果您设置自定义错误页面。

这是执行您需要的相同操作的另一种方法。
// Create an error.php file in your /app folder with the following code:

<?php
class AppError extends ErrorHandler {
function error404($params) {
$this->controller->layout = "error";
$this->set('title_for_layout', 'Vyskytla sa chyba');
parent::error404($params);
}
}
?>

关于cakephp - 在 CakePHP 中处理错误时设置页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com