Laravel 5,在compose@ViewComposer内部调用函数记录致命错误并按预期返回结果


Laravel 5, calling function inside compose@ViewComposer logs fatal error and returns result as expected

我正在尝试使用

获取路由名称
app('request')->route()->getName();

在我的view composer的compose方法中,该方法由ServiceProvider的boot方法调用。

结果按预期返回(foo。但是,当我检查日志文件时,

Laravel 5日志,

异常'Symfony'Component'Debug' exception ' fatalerroreexception ' withmessage '在null上调用成员函数getName() '

我不明白一个未定义的函数怎么能返回正确的对象,我可以在它上面调用方法。

感谢任何帮助。谢谢。

我以不同的方式获得了当前路由的名称,我没有在日志中看到任何东西,所以也许可以试试这个:

public function boot()
{
   view()->composer([...], function($view){
      dd('Route::currentRouteName());

关于你的错误,我猜->route()返回null,因此错误,所以laravel将getName()消息发送给app('request')。您可以试试app('request')->getName();app('route')->getName();