如何在laravel 5中的配置文件中使用URL ::或asset()

时间:2015-03-11 18:35:04

标签: laravel-5

在任何配置文件中如果我使用URL类,我会收到错误“找不到类URL”;如果我使用函数“asset”,当我更新composer.json时,我收到此错误: 可捕获的致命错误:传递给Illuminate \ Routing \ UrlGenerator :: __ construct()的参数2必须是Illuminate \ Http \ Request的实例,null给定,

在配置文件之外,两者都可以正常工作

return [
    'photos_url' => URL::asset('xxx'),
];

return [
    'photos_url' => asset('xxx'),
];

测试

echo config('site.photos_url'); // or echo Config::get('site.photos_url');

2 个答案:

答案 0 :(得分:2)

您不应该在配置中使用动态代码。作为解决方案,您可以使用ConfigServiceProvider添加任何特定情况:

public function register()
{
    config([
        'photos_url' => assets('xxx'),
        'services.facebook.redirect' => url('auth/callback/facebook'),
    ]);
}

来源:https://github.com/laravel/framework/issues/7671

答案 1 :(得分:2)

配置很早就加载了,可能并不意味着使用框架中的任何东西,除了 Dotenv

return [
    'photos_url' => URL::asset('xxx'),
];

相反,您可以使用:

return [
    'photos_url' => env('APP_URL').'/rest_of_path.ext',
];

来源:Laravel问题#7671