【发布时间】:2015-07-04 19:26:56
【问题描述】:
我已经安装了 Laravel,现在每次运行 composer update、php artisan routes 或任何 composer 命令时都会出现此错误:
Call to undefined method Illuminate\Http\Response::view()
到目前为止,我已经搜索了互联网并尝试了以下建议的解决方案,但没有任何效果:
1) 网上很多建议的答案都说删除vendor/compiled.php 并再次运行作曲家更新。但是当我转到供应商文件夹时,我在那里找不到任何已编译的.php 文件。唯一存在的文件是:autoload.php
2) 我也尝试在storage/framework/ 文件夹中搜索compiled.php,但那里也没有。
3) 我什至尝试使用 --force 标志 php artisan optimize --force 运行优化,它显示与上述相同的错误。
4) 我查看了 boostrap/autoload.php 的编译路径,上面写着 $compiledPath = __DIR__.'/cache/compiled.php'; 我只能看到 boostrap/cache 文件夹并且没有这个文件。
这里有什么问题?我是 Laravel 的新手,我不明白这个错误是什么意思。根据那里的答案,我四处寻找compiled.php 删除并再次运行更新,我什至不知道这是否是正确的解决方案。有人可以在这里帮我解决这个问题吗?
我昨天更新后安装了 Laravel 5.1.6。我今天也运行了composer dumpautoload 命令,我想知道这个错误是不是在那之后开始发生的。现在 composer 中的任何命令都会出现上述错误。
编辑: 现在甚至我的网站浏览器视图也显示错误:
FatalErrorException in Facade.php line 210:
Call to undefined method Illuminate\Foundation\Application::missing()
我还尝试删除完整的供应商文件夹和 composer.lock,然后重新运行 composer install。在生成自动加载文件时,安装快结束时,它再次显示此错误并停止。
编辑 2: cmets 中的@NehalHasnayeen 完全正确。这个错误是因为app调用了Response类的view方法,而response类没有view方法。一旦我从我的路线中删除它,它就起作用了。这是我的路线文件:
Route::get('/', function () {
return view('index');
//return View::make('index');
});
Route::group(['prefix' => 'api'], function()
{
Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]);
Route::post('authenticate', 'AuthenticateController@authenticate');
});
// -------- THIS WAS CAUSING THE ISSUE - REMOVING THIS WORKED AFTER THAT ------
//App::missing(function($exception) {
// return view('index');
//});
我的最后一个问题是,为什么包罗万象的路线会抛出这个错误?我从here 中读到,添加上述内容会将所有其他路由请求重定向到索引。什么是正确的方法?它在 Laravel 5 中发生了变化还是我做错了什么?
【问题讨论】:
-
您升级到了 5.1.6,对吧?你之前的laravel是什么版本的?
-
我第一次安装的时候是5.1.4,后来升级到5.1.5再到5.1.6。但是升级后它可以工作一段时间。我认为我执行的最后一个命令是
composer dumpautoload,这是在升级几个小时后不久,我开始注意到这些错误。不确定 dumpautoload 是否会导致此错误,所以如果上次升级导致它。 -
你的“bootstrap/cache”目录是否可写?
-
你的应用在 Response 类上调用 view 方法,但是 response 类没有 view 方法,所以找到它调用这个方法的文件并删除它并用正确的方法替换它
-
App::missing 用于 laravel 4 版本,它在 laravel 5 中被删除,对于自定义异常处理,在 app\exceptions 文件夹中有一个处理程序类。使用那个
标签: laravel laravel-5 composer-php