2015-07-04 3 views
0

У меня Laravel установлен, и теперь я получаю эту ошибку каждый раз я бег composer update, php artisan routes или любые команды, композитора:Вызова неопределенного метода Illuminate Http Response :: вид()

Call to undefined method Illuminate\Http\Response::view() 

Я уже искал в Интернете и пробовал следующие предлагаемые решения до сих пор, и ничего не работало:

1) В предлагаемом ответе в сети говорится, что нужно удалить vendor/compiled.php и снова запустить обновление композитора. Но когда я пошел в папку поставщика, я не смог найти там файл compiled.php. Единственный файл, который существует там: autoload.php

2) Я также попытался найти compiled.php внутри папки storage/framework/ и ничего там не было.

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, и мне интересно, возникла ли эта ошибка после этого. Теперь любые команды в композиторе дают указанную выше ошибку.

EDIT: Теперь даже мой взгляд браузер сайта показывает ошибку:

FatalErrorException in Facade.php line 210: 
Call to undefined method Illuminate\Foundation\Application::missing() 

Я также попытался удалить всю папку поставщика и composer.lock, и вновь побежал composer install. К концу установки при создании файлов автозагрузки он снова показал эту ошибку и остановился.

EDIT 2: @NehalHasnayeen в комментариях получил это абсолютно правильно. Эта ошибка была вызвана тем, что приложение вызывало метод представления в классе Response, в то время как класс ответа не имел метода просмотра. Как только я удалил это с моего маршрута, он сработал. Это мой путь файл:

Route::get('/', function() { 
    return view('index'); 
    //return View::make('index'); 
}); 

Route::group(['prefix' => 'api'], function() 
{ 
    Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]); 
    Route::post('authenticate', '[email protected]'); 
}); 

// -------- THIS WAS CAUSING THE ISSUE - REMOVING THIS WORKED AFTER THAT ------ 
//App::missing(function($exception) { 
// return view('index'); 
//}); 

Он принимает меня мой последний вопрос, почему всеохватывающий маршрут бросает эту ошибку? Я прочитал от here, что добавление вышеперечисленного перенаправит все остальные запросы маршрута к индексу. Каков правильный метод? Это изменилось в Laravel 5 или я сделал что-то неправильно?

+0

Вы выполнили обновление до 5.1.6, верно? Какова была версия ларавела, которую вы имели раньше? –

+0

Когда я впервые установил его, он был 5.1.4, затем он обновился до 5.1.5, а затем до 5.1.6. Но после обновления он работал недолго. Я думаю, что последняя команда, которую я сделал, была 'composer dumpautoload', которая была через несколько часов после обновления, и вскоре после этого я начал замечать эти ошибки. Не уверен, что dumpautoload может вызвать эту ошибку, поэтому, если это вызвало последнее обновление. – Neel

+0

Являетесь ли вы загрузочным каталогом «bootstrap/cache»? –

ответ

2

Для 1 ошибки: вашего приложения вызывается метод просмотра на классе Response, но класс ответа не имеет никакого способа просмотра, поэтому нужно найти файл, где он звонит этот метод & удалить его & заменить его правильным метод

Для 2-й ошибки: App: отсутствует для версии laravel 4, она удаляется в laravel 5.Для достижения этого в вашем приложении \ exceptions \ handler.php файл добавьте это в метод рендеринга

public function render($request, Exception $e) 
{ 
    if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) { 
     return response()->view('index', [], 404); 
    } 

    return parent::render($request, $e); 
} 
Смежные вопросы