Подтвердить что ты не робот

Laravel вид не найден исключение

У меня проблема с laravel view не найден функцией маршрута. Я сделал композитор dumpautoload, но не использовал ArticleController.php

<?php
class ArticleController extends BaseController
 {
 public function showIndex()
 {
    return View::make('index');
 }

 public function showSingle($articleId)
 {
 return View::make('single');
 }
}


//Route
Route::get('index', '[email protected]');

InvalidArgumentException

View [index] not found.
open: /opt/lampp/htdocs/laravel-project/bootstrap/compiled.php

    foreach ((array) $paths as $path) {
    foreach ($this->getPossibleViewFiles($name) as $file) {
    if ($this->files->exists($viewPath = $path . '/' . $file)) {
    return $viewPath;
    }
    }
    }
    throw new \InvalidArgumentException("View [{$name}] not found.");
    }
    protected function getPossibleViewFiles($name)

Server/Request Data
REDIRECT_UNIQUE_ID  UfWlAn8AAQEAABR2VakAAAAF
REDIRECT_STATUS     200
UNIQUE_ID   UfWlAn8AAQEAABR2VakAAAAF
HTTP_HOST   localhost
HTTP_USER_AGENT     Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0
HTTP_ACCEPT     text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE    en-US,en;q=0.5
HTTP_ACCEPT_ENCODING    gzip, deflate
HTTP_COOKIE     laravel_session=f94fpel78jn89nhah32mflqn15
HTTP_CONNECTION     keep-alive
HTTP_CACHE_CONTROL  max-age=0
PATH    /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LD_LIBRARY_PATH     /opt/lampp/lib:/opt/lampp/lib
SERVER_SIGNATURE    
SERVER_SOFTWARE     Apache/2.4.4 (Unix) OpenSSL/1.0.1e PHP/5.4.16 mod_perl/2.0.8-dev Perl/v5.16.3
SERVER_NAME     localhost
SERVER_ADDR     127.0.0.1
SERVER_PORT     80
REMOTE_ADDR     127.0.0.1
DOCUMENT_ROOT   /opt/lampp/htdocs
REQUEST_SCHEME  http
CONTEXT_PREFIX  
CONTEXT_DOCUMENT_ROOT   /opt/lampp/htdocs
SERVER_ADMIN    [email protected]
SCRIPT_FILENAME     /opt/lampp/htdocs/laravel-project/public/index.php
REMOTE_PORT     50211
REDIRECT_URL    /laravel-project/public/index
GATEWAY_INTERFACE   CGI/1.1
SERVER_PROTOCOL     HTTP/1.1
REQUEST_METHOD  GET
QUERY_STRING    
REQUEST_URI     /laravel-project/public/index
SCRIPT_NAME     /laravel-project/public/index.php
PHP_SELF    /laravel-project/public/index.php
REQUEST_TIME_FLOAT  1375053058.123
REQUEST_TIME    1375053058
4b9b3361

Ответ 1

Это происходит, когда Laravel не находит файл вида в вашем приложении. Убедитесь, что у вас есть файл с именем: index.php или index.blade.php в вашем каталоге app/views.

Обратите внимание, что Laravel будет делать следующее при вызове View::make:

  • Для View::make('index') Laravel будет искать файл: app/views/index.php.
  • Для View::make('index.foo') Laravel будет искать файл: app/views/index/foo.php.

В файле может быть любое из этих двух расширений: .php или .blade.php.

Ответ 2

Эта ошибка также возникает, когда вы пытаетесь переместить весь каталог проекта в другой путь. И вы выполнили следующие команды ниже ПЕРЕД двигателем.

php artisan optimize --force
php artisan config:cache
php artisan route:cache

Сообщение об ошибке шахты отображается следующим образом: введите описание изображения здесь

Как вы можете видеть, старый путь был написан в compiled.php. Итак, чтобы устранить проблему. Просто запустите ту же команду AGAIN в папке проекта в новой папке.

php artisan optimize --force
php artisan config:cache
php artisan route:cache

Надеюсь, что это поможет.

Ответ 3

У меня эта команда работает

php artisan config:cache

Как говорит Laravel doc, по умолчанию Laravel настроен на использование драйвера файлового кэша, который хранит сериализованные кэшированные объекты в файловой системе. Таким образом, он должен перепроверять файловую систему, чтобы новые виды и маршрут были доступны для показа. Я также не уверен, почему Laravel нужно на самом деле reache

Ответ 4

Просто в вызове контроллера

return View('index');

без

::make

Ответ 5

Вполне возможно, что ваше представление присутствует, даже если оно показывает ошибку. Поэтому для решения этой проблемы вам необходимо остановить сервер и запустить эту команду на терминале.

php artisan config:cache

затем перезагрузите сервер

Ответ 6

В моем случае я звонил View::make('User/index'), где на самом деле мое представление было в каталоге пользователя, и оно называлось index.blade.php. Ergo после того, как я изменил его на [email protected]('user.index'), все начали работать.

Ответ 7

В моем случае Laravel 5.3

Route::get('/', function(){
    return View('test');
});

test.blade.php не был рендерингом, но некоторые другие представления были рендерингом на localhost через XAMPP на mac. Запустив сервер artisan, представление начало рендеринг для того же URL-адреса по сравнению с XAMPP.

php artisan serve

Чтобы избежать такого сценария, нужно тестировать приложения Laravel только с помощью сервера Artisan.

Ответ 8

Как сказал @deanchiu, это может произойти, когда вы переместите весь проект на другой путь или сервер.

Но в моем случае у меня не было доступа к командной строке на сервере, и я выполнял следующие команды ДО того, как загрузить свой проект мне помогло.

> php artisan route:clear
> php artisan config:clear

Ответ 9

У меня была та же ошибка, но в моем случае представление называлось seeProposal.

Я изменил его, чтобы seeproposal и оно работало нормально...

Это не было проблемой при локальном тестировании, но, очевидно, Laravel делает различие с прописными буквами, запущенными в производство. Поэтому для тех, у кого есть представления с заглавными буквами, я бы поменял их все на строчные.

Ответ 10

Несколько неловко, я обнаружил еще одну довольно тривиальную причину этой ошибки: у меня была полная остановка в имени файла моего блейд файла (например, resources/views/pages/user.invitation.blade.php). Это действительно имело смысл в то время!

Я пытался ссылаться на это так: view('pages.user.invitation')

но, конечно, Laravel искал файл в resources/views/pages/user/invitation.blade.php и выбрасывал view not found.

Надеюсь, это кому-нибудь поможет.

Ответ 11

Создайте файл index.blade.php в папке представлений, это должно быть все

Ответ 12

проверьте синтаксис вашего лезвия на вид, который сказал, не найден, я просто исправить мой

@if
@component
@endif 
@endcomponent

в

@if
@component
@endcomponent
@endif