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
Ответы
Ответ 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