2015-02-18 2 views
11

sto ottenendo questo errore quando si tenta di eseguire php artisan (anything):Perché sto riscontrando questo errore con Laravel: PHP Catchable Fatal Error?

PHP Catchable fatal error: Argument 2 passed to 
Illuminate\Routing\UrlGenerator::__construct() 
must be an instance of Illuminate\Http\Request, null given, called in 
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php 
on line 56 and defined in 
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php 
on line 81 

Catchable fatal error: Argument 2 passed to 
Illuminate\Routing\UrlGenerator::__construct() 
must be an instance of Illuminate\Http\Request, null given, called in 
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php 
on line 56 and defined in 
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php 
on line 81 

non ho assolutamente idea di che cosa sta causando esso e bisogno di aiuto con esso.

Grazie in anticipo

risposta

30

Beh, ho scoperto quello che ha generato l'errore.

In config/services.php stavo facendo questo:

'facebook' => [ 
    'client_id'  => env('FACEBOOK_APP_ID', null), 
    'client_secret' => env('FACEBOOK_APP_SECRET', null), 
    'redirect'  => url('auth/facebook'), 
] 

url('auth/facebook') è ciò che ha causato l'errore.

+0

Grazie per questo, ho avuto un problema simile. Hai hardcode l'URL completo nella configurazione? o hai trovato un modo per passare l'URL generato? – Azamat

+3

Capito. Abbiamo usato '.env' per mantenere l'URL dell'app e l'ho appena chiamato nella configurazione dei servizi. – Azamat

10

Come hai capito, il problema è causato dall'utilizzo di url() in config. Lo stesso accadrebbe se tu avessi usato la risorsa(). Quando si eseguono comandi artisan, il framework non può capire quale sia l'url del sito Web, quindi l'errore.

Voglio solo proporre una soluzione alternativa:

'facebook' => [ 
    'client_id'  => '***' 
    'client_secret' => '***', 
    'redirect'  => PHP_SAPI === 'cli' ? false : url('/fb-callback-path'), 
] 

Non mi piace moltissimo, ma è molto improbabile che si sta sempre bisogno del tuo FB reindirizza durante l'esecuzione di script da riga di comando e in questo modo si don È necessario ricordare la configurazione del reindirizzamento in ogni ambiente.

+1

Questo è un bel modo complicato. Ha risolto il problema per me. –

0

Il problema è causato dall'uso di url() nella configurazione. l'ho rimosso da config/filesystems.php e ha funzionato! spero ti aiuti!