Laravel 5.1视图未找到

6

这似乎是 Laravel 中不时出现的问题。我正在编写一个带有视图的 CRUD 控制器,但在测试时遇到了 InvalidArgumentException in FileViewFinder.php line 137: View [bookingcrud.index] not found 错误。以下是我的代码:

routes.php:

Route::resource('bookingcrud', 'BookingsCrudController');

BookingsCrudController.php

use uasc\Http\Requests;
use uasc\Http\Requests\CrudCreateRequest;
use uasc\Http\Requests\CrudUpdateRequest;
use uasc\Http\Controllers\Controller;

use Auth;
use DB;
use Illuminate\Pagination\Paginator;

use Illuminate\Http\Request;

class BookingsCrudController extends Controller {

    public function index()
    {
        if (!Auth::check() || Auth::user()->authority < 1) {
            return redirect('/login');
        }

        $raw = "select * from bookings";
        $bookings = DB::select($raw);
        $paginatedBookings = new Paginator($bookings, 1);

        return view('bookingcrud.index')->with('bookings', $paginatedBookings);
    }
}

这个视图文件位于~/laravel/resources/views/bookingcrud/index.blade.php,无论里面是什么,无论是来自工作视图的标记还是只有单词"cheese",我都会得到:

InvalidArgumentException in FileViewFinder.php line 140:
View [bookingcrud.index] not found.

我在一个已知工作的控制器中测试了相同的视图并得到了相同的错误,然而我在同一个CRUD控制器上测试了一个已知工作的视图,它可以正常运行。我还尝试改变视图的目录和重命名它,但是我会得到相同的错误,只是"View [bookingcrud.index]"会相应地改变。我确保文件和目录的权限都是完整的,以进行测试。
自从第一次出现错误以来,我已经从5.0.26升级到了5.1.1,并运行了composer update。此外,从查看具有相同错误的线程中,我还运行了artisan config:clear。
我正在使用部署在Virtual Box上的Homestead 2.0.17,在Windows 8.1上进行开发。
希望能够得到任何帮助,在这一点上,它让我非常头痛。

请确保设置了正确的权限,并且如果请求区分大小写,则文件必须完全匹配。[链接](http://laravel.io/forum/06-14-2014-invalidargumentexception-view-schoolsindex-not-found-please-help-its-urgent) - brokekidweb
如问题所述,文件和目录权限已满(777或-rwxrwxrwx等),文件路径全部为小写且没有空格。 - Livewire
尝试在控制台中使用 php artisan serve,然后导航到 http://localhost:8000/,看看是否可以获取该页面。如果可以,那么问题可能出在您的Homestead设置上。否则,我们可以将问题缩小到您的代码中的某些内容。 - brokekidweb
是的,我也尝试过这个,但当我导航到http://localhost:8000/bookingcrud时仍然收到相同的错误。 - Livewire
4个回答

14
请使用终端。
homestead ssh > Press Enter
vagrant@homestead cd /Path_of_Your_Project/
vagrant@homestead:~/Path_of_Your_project php artisan cache:clear
vagrant@homestead:~/Path_of_Your_project php artisan config:cache

对我的英文表示抱歉


5
原来我拼错了blade这个单词,不过需要第二个人的眼睛才能发现。
$ ls resources/views/crud/booking/
crud.balde.php  index.balde.php

在调试时,一定要仔细检查小细节。感谢您的帮助。


4

如果没有SSH访问权限,解决此问题有两种方法。

如果没有默认Laravel包的插件,首先删除 bootstrap/cache/config.php 文件即可解决问题。

或者,如果有默认Laravel包的插件,将所有相关路径中提到的 bootstrap/cache/config.php 更改为 Laravel 项目分配的确切路径。


你真是帮了我大忙了,我也遇到了同样的问题。我的本地站点一切正常,但是在上线后却显示“无效参数异常”,提示找不到视图。我尝试了很多解决方案,但只有你的方法奏效了。 谢谢! - Amir Khan

2

请记住,Linux 区分大小写!

我有类似这样的代码:

return view('MyView', $data);

这段代码在我的环境(Mac OS)上可以运行,但是在部署服务器(Ubuntu)上却不能运行!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接