0

我目前正在使用 Laravel 4 并且正在徘徊如何覆盖 Request::secure() 方法,我正在编写一个将在负载均衡器后面的应用程序,因此我宁愿让函数在标头时返回 true从负载均衡器应用的值。

理想情况下应该怎么做?我在这里阅读了这篇博客文章http://fideloper.com/extend-request-response-laravel似乎有点过头了。

我不完全理解 Laravel 的 Facades 概念?是否有可能这就是我如何做到这一点的答案?

4

1 回答 1

2

正如 fideloper 在他的文章中提到的那样,扩展Request类与普通类略有不同。不过更简单:

1.创建你的扩展Request类并确保它可以自动加载;

扩展请求.php

namespace Raphael\Extensions;

use Illuminate\Support\Facades\Response as IlluminateResponse;

class Response extends IlluminateResponse {
    public function isSecure() {
        return true;
    }
}

请注意,我们扩展了isSecure方法,而不是secure. 这是因为简单地从 Symfony 的基类secure调用。isScureRequest

2.确保 Laravel 使用你的扩展类。为此,请更改您的start.php文件;

引导程序/start.php

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/

use Illuminate\Foundation\Application;
Application::requestClass('Raphael\Extensions\Request');

$app = new Application;

$app->redirectIfTrailingSlash();

3.确保您在app.php配置文件中设置了正确的别名。

应用程序/配置/app.php

'aliases' => array(
    // ...
    'Request' => 'Raphael\Extensions\Request',
    // ...
),
于 2013-09-16T04:41:36.830 回答