Updated custom request overrides to better match original intent

This updates the custom Request handler to provide only the scheme and
host on the `getSchemeAndHttpHost` call, instead of providing the whole
APP_URL value, while adding an override to the 'getBaseUrl' to use the
APP_URL content instead of the guessed/detected Symfony value.

Untested apart from simple local setup.

Related to #2765
This commit is contained in:
Dan Brown 2022-04-02 17:14:37 +01:00
parent affae2e3c4
commit 4dce03c0d3
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9

View File

@ -8,20 +8,35 @@ class Request extends LaravelRequest
{
/**
* Override the default request methods to get the scheme and host
* to set the custom APP_URL, if set.
* to directly use the custom APP_URL, if set.
*
* @return \Illuminate\Config\Repository|mixed|string
* @return string
*/
public function getSchemeAndHttpHost()
{
$base = config('app.url', null);
$appUrl = config('app.url', null);
if ($base) {
$base = trim($base, '/');
} else {
$base = $this->getScheme() . '://' . $this->getHttpHost();
if ($appUrl) {
return implode('/', array_slice(explode('/', $appUrl), 0, 3));
}
return $base;
return parent::getSchemeAndHttpHost();
}
/**
* Override the default request methods to get the base URL
* to directly use the custom APP_URL, if set.
*
* @return string
*/
public function getBaseUrl()
{
$appUrl = config('app.url', null);
if ($appUrl) {
return rtrim(implode('/', array_slice(explode('/', $appUrl), 3)), '/');
}
return parent::getBaseUrl();
}
}