Laravel视图未找到异常

时间:2013-07-28 23:13:30

标签: php laravel laravel-4 exception-handling

我有路由功能找不到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');

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

18 个答案:

答案 0 :(得分:35)

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

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

我的错误消息显示如下 enter image description here

正如您所看到的,旧路径是在 compiled.php 中编写的。所以,解决问题。只需在新文件夹位置的项目文件夹下运行相同的命令AGAIN即可。

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

希望这有帮助。

答案 1 :(得分:29)

当Laravel在您的应用程序中找不到视图文件时,会发生这种情况。确保您的index.php目录下有一个名为index.blade.phpapp/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 :(得分:13)

此命令适用于我

php artisan config:cache

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

答案 3 :(得分:3)

仅在控制器调用中

<style name="YourActivityTheme" parent="BaseAppTheme">
    <item name="android:windowTranslucentStatus">false</item>
    <item name="android:statusBarColor">@android:color/black</item>
</style>

没有

<aplication
        ....... >
            .......    

         <activity
                android:name=".chapters.home.YourNiceActivity"
                android:theme="@style/YourActivityTheme">
                <intent-filter>
                   ...
                </intent-filter>
        </activity>

    .....
</application>

答案 4 :(得分:3)

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

php artisan config:cache

然后重新启动服务器

答案 5 :(得分:1)

在我的情况下,我正在调用View::make('User/index'),实际上我的视图位于用户目录中,它被称为index.blade.php。在我将其更改为View@make('user.index')之后,所有人都开始工作了。

答案 6 :(得分:0)

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

enter image description here

将访问组更改为访问文件

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

答案 7 :(得分:0)

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

    'paths' => [
    resource_path('views'),
    resource_path('../path/from/project/route/to/view')
],

答案 8 :(得分:0)

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

php artisan config:缓存php artisan路由:cache php artisan 控制器:缓存php artisan优化:清除

答案 9 :(得分:0)

在我的情况下,我必须运行php artisan optimize:clear才能使所有内容恢复正常工作。

答案 10 :(得分:0)

如果您的查看路径为true,请首先尝试config:cache,如果没有任何更改,请尝试route:cache,以检查您的资源路径权限为true。

示例:您可以使用以下命令在ubuntu中进行操作:

sudo chgrp -R www-data resources/views
sudo usermod -a -G www-data $USER

答案 11 :(得分:0)

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

@if
@component
@endif 
@endcomponent

@if
@component
@endcomponent
@endif 

答案 12 :(得分:0)

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

答案 13 :(得分:0)

有点令人尴尬的是,我发现了导致此错误的另一个相当平凡的原因:我的刀片文件的文件名(例如resources/views/pages/user.invitation.blade.php)停了下来。当时确实很有意义!

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

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

希望这对某人有帮助。

答案 14 :(得分:0)

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

我将其更改为seeproposal,并且效果很好...

在本地测试时这不是问题,但显然Laravel在生产中使用大写字母来加以区分。因此,对于那些具有大写字母的视图的人,我将其全部更改为小写。

答案 15 :(得分:0)

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

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

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

答案 16 :(得分:0)

就我而言,Laravel 5.3

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

test.blade.php没有呈现,但其他一些视图通过Mac上的XAMPP在localhost上呈现。 运行工匠服务器后,视图开始在XAMPP上呈现相同的网址。

php artisan serve

为了避免任何此类情况,我们应该仅使用工匠服务器测试Laravel应用程序。

答案 17 :(得分:-1)

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