Моя идея состояла в том, чтобы использовать субдомен Local Tunnel для более удобного представления URI обратного вызова.Тем не менее, я считаю, что мог бы достичь тех же результатов более простым способом.
Это решение с Laravel Valet:
In package.json I 'мы добавили скрипт с именем shared
"scripts": {
...
"share": "lt --port 80 --subdomain blog --local-host blog.test"
}
В AppServiceProvider.php Я расширил UrlGenerator
, чтобы избежать перенаправления обратно на http://blog.test
<?php
namespace App\Providers;
use App\Services\LocalTunnelUrlGenerator;
use Blade;
use Illuminate\Http\Resources\Json\Resource;
use Illuminate\Routing\Router;
use Illuminate\Routing\UrlGenerator;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
(...)
}
public function register()
{
$this->enableLocalTunnel();
}
private function enableLocalTunnel()
{
if (!app()->environment('local') || !config('app.use_local_tunnel')) {
return;
}
$this->app->extend('url', function (UrlGenerator $defaultGenerator) {
/** @var Router $router */
$router = $this->app['router'];
$routes = $router->getRoutes();
return new LocalTunnelUrlGenerator($routes, $defaultGenerator->getRequest());
});
}
}
Это LocalTunnelUrlGenerator.php :
<?php
namespace App\Services;
use Illuminate\Http\Request;
use Illuminate\Routing\RouteCollection;
use Illuminate\Routing\UrlGenerator;
class LocalTunnelUrlGenerator extends UrlGenerator
{
public function __construct(RouteCollection $routes, Request $request)
{
parent::__construct($routes, $request);
}
public function formatRoot($scheme, $root = null)
{
return "https://blog.localtunnel.me";
}
}
Зачем все это?Поскольку всякий раз, когда приложение вызывает метод redirect()
, нас отправляют обратно на http://blog.test.
![where the problem happens](https://i.stack.imgur.com/zvOel.png)
Действительно ли мне нужно расширить UrlGenerator
заставить его работать?