Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在配置文件中使用route helper_Php_Laravel_Routes_Helper - Fatal编程技术网

Php 如何在配置文件中使用route helper

Php 如何在配置文件中使用route helper,php,laravel,routes,helper,Php,Laravel,Routes,Helper,所以我有一个名为services.php的配置文件,内容如下 [ 'facebook' => [ 'url' => 'https://...'] ] 但我想让它像这样: [ 'facebook' => [ 'url' => url(route('socialite-callback', ['provider' => 'facebook']))] ] 但是,使用类似代码的修补程序将报告: Argument 2 passed to Illuminat

所以我有一个名为
services.php
的配置文件,内容如下

[
    'facebook' => [ 'url' => 'https://...']
]
但我想让它像这样:

[
    'facebook' => [ 'url' => url(route('socialite-callback', ['provider' => 'facebook']))]
]
但是,使用类似代码的修补程序将报告:

Argument 2 passed to Illuminate\Routing\UrlGenerator::__construct() must be an instance of Illuminate\Http\Request, null given, called in /laravel/justitalianwine_ecommerce/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php on line 68
但是如果我使用第一个like,然后打开
tinker
并粘贴以下内容:

url(route('socialite-callback', ['provider' => 'facebook']))

它工作正常

我解释了如何加载配置

出现此错误的原因“可能”是在加载配置后加载/引导帮助器方法

一种方法是使用
RouteServiceProvider
初始化/设置您需要的这些类型用法的配置

class RouteServiceProvider extends ServiceProvider
{
    // other methods and fields...

    public function map()
    {
        $this->mapApiRoutes();
        $this->mapWebRoutes();
        $this->mapServiceRoutes();
    }

    protected function mapServiceRoutes()
    {
        config()->set('services.facebook.url', url(route('socialite-callback', ['provider' => 'facebook'])));
    }
}
编辑:


此外,提及与您类似的案例也存在5年以上的问题。

这是允许的还是被视为“更改框架文件”,因此不建议这样做?我不认为这是“更改框架”文件,您可以创建您的服务提供商或添加现有的服务提供商,如应用程序,路由或EventServiceProviders。这是完全“允许的”@贝尔托99