47

我有 laravel 视图的问题,路由函数找不到我做了 composer 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', 'ArticleController@showIndex');

无效参数异常

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    you@example.com
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
4

19 回答 19

57

当您尝试将整个项目目录移动到其他路径时也会发生此错误。在您移动之前,您碰巧在下面运行了以下命令。

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

我的错误信息显示如下 在此处输入图像描述

如您所见,旧路径写在compiled.php中。所以,要解决问题。只需在新文件夹位置的项目文件夹下再次运行相同的命令。

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

希望这可以帮助。

于 2015-11-02T04:10:07.190 回答
42

当 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.

于 2013-07-28T23:35:58.453 回答
22

这个命令对我有用

php artisan config:cache

正如 Laravel 文档所说,默认情况下,Laravel 配置为使用文件缓存驱动程序,它将序列化的缓存对象存储在文件系统中。所以它需要重新缓存文件系统,以便可以显示新添加的视图和路由。我也不知道为什么 laravel 实际上需要重新缓存

于 2015-06-08T17:48:18.137 回答
9

即使显示错误,您的视图也可能存在。因此,要解决此问题,您需要停止服务器并在终端上运行此命令。

php artisan config:cache

然后重启服务器

于 2018-07-25T10:01:55.293 回答
5

就我而言,我必须跑步php artisan optimize:clear才能让一切恢复正常。

于 2020-05-02T07:20:23.247 回答
3

就在控制器调用中

return View('index');

没有

::make
于 2015-12-02T20:15:05.177 回答
2

有点尴尬的是,我发现了导致此错误的另一个相当微不足道的原因:我的刀片文件的文件名中有一个句号(例如resources/views/pages/user.invitation.blade.php)。当时真的觉得很有意义!

我试图像这样引用它:view('pages.user.invitation')

但当然 Laravel 正在寻找文件resources/views/pages/user/invitation.blade.php并抛出view not found.

希望这可以帮助某人。

于 2019-03-27T01:32:08.330 回答
2

正如@deanchiu 所说,当您将整个项目移动到另一个路径或服务器时可能会发生这种情况。

但在我的情况下,我无法访问服务器上的命令行,并且在上传项目之前运行以下命令对我有帮助。

> php artisan route:clear
> php artisan config:clear
于 2018-03-26T20:15:06.107 回答
1

在我的情况下,我正在调用View::make('User/index'),实际上我的视图在用户目录中,它被称为 index.blade.php。因此,我将其更改为View@make('user.index') 全部开始工作后。

于 2015-01-21T00:54:23.457 回答
1

我遇到了同样的错误,但在我的情况下,视图被称为seeProposal.

我把它改成它seeproposal工作得很好......

在本地测试时这不是问题,但显然 Laravel 区分了生产中运行的大写字母。因此,对于那些对大写字母有看法的人,我会将它们全部更改为小写。

于 2018-09-04T13:33:02.280 回答
1

在你的 cmd 上使用它,然后运行你的项目。

php artisan config:cache php artisan route:cache php artisan controller:cache php artisan optimize:clear

于 2020-10-29T10:45:38.220 回答
0

如果您不是以 root 用户身份访问文件,则应更改文件的访问权限

在此处输入图像描述

将访问组更改为访问文件

此外,其他人访问文件 对我有用

于 2021-06-07T16:10:10.943 回答
0

如果您在项目中使用 GIT,请不要忘记 make git add 。并在将项目移动到另一端之前提交,也不要忘记清理缓存。

于 2021-09-16T00:40:29.807 回答
0

在未找到的视图上检查您的刀片语法,我只是修复我的

@if
@component
@endif 
@endcomponent

@if
@component
@endcomponent
@endif 
于 2019-06-24T07:23:59.670 回答
0

除了这些答案之外,如果您的视图位于项目的不寻常目录中,则必须将以下内容添加到/config/view.php

    'paths' => [
    resource_path('views'),
    resource_path('../path/from/project/route/to/view')
],
于 2021-03-25T13:11:21.837 回答
0

如果您的查看路径为真,请先尝试 config:cache并且route:cache如果没有任何更改,请检查您的资源路径权限是否为真。

示例:您可以在 ubuntu 中使用:

sudo chgrp -R www-data resources/views
sudo usermod -a -G www-data $USER
于 2019-10-28T11:42:24.627 回答
-1

在 views 文件夹中创建 index.blade.php 文件,这应该是全部

于 2019-05-23T21:41:10.260 回答
-1

就我而言,Laravel 5.3

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

test.blade.php 没有呈现,但其他一些视图正在通过 Mac 上的 XAMPP 在 localhost 上呈现。运行 artisan server后,视图开始通过 XAMPP 呈现相同的 url。

php artisan serve

为避免任何此类情况,应仅使用 artisan 服务器测试 Laravel 应用程序。

于 2017-01-18T07:55:38.957 回答
-1

我有同样的错误。我在名为的视图目录下创建了一个目录,users并在其中创建了一个index.blade.php文件。调用此文件时,您应该写入users.index以指示您的路径。或者只是index.blade.php在视图下创建文件。希望这会帮助遇到同样问题的人

于 2020-08-28T12:52:42.530 回答