Class App/Http/Controllers/View 未找到错误
Class App/Http/Controllers/View Not Found error
我是 laravel 5 的新手,目前被这个错误难住了:
FatalErrorException in TicketController.php line 18: Class 'App\Http\Controllers\View' not found
奇怪的是视图确实存在,我检查了路由是否确实路由到正确的控制器,当我尝试这样做时弹出错误:
return View::make('tickets.bus.index');
要么我在某处犯了错误,要么实施与 laravel 4
不同
问题不在于实际视图,而在于 class View
。你会看到当你只是引用一个 class 比如 View::make('tickets.bus.index')
PHP 在你的 current namespace.[=16= 中搜索 class ]
在本例中为 App\Http\Controllers
。但是 View
class 显然不存在于控制器的命名空间中,而是存在于 Laravel 框架命名空间中。它还有一个位于 global 命名空间中的别名。
您可以通过在根命名空间前加上反斜杠来引用别名:
return \View::make('tickets.bus.index');
或在顶部添加导入语句:
use View;
存在一个辅助函数,view()
,它位于全局命名空间中,可用于简化语法:
return view('tickets.bus.index');
使用此方法,无需包含 use View;
或包含根命名空间,例如 \View
.
lukasgeiter 解释的概念对于理解 Laravel 至关重要,即使您选择使用辅助函数也是如此。
对我来说这是命名空间问题。我使用 php artisan 来创建控制器,但似乎 php artisan 使用了不同的命名空间(可能我必须更改 composer.json 中的某些内容来修复它,但我在 laravel)
Whoops, looks like something went wrong.
FatalErrorException in PagesController.php line 11:
Class 'App\Http\Controllers\Controller' not found
很好,我正在使用 phpStorm,它会自动插入适当的命名空间
确保正确检查命名空间。这就是我用 php artisan
创建控制器的方式
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller; //php artisan inserted.
class PagesController extends Controller
{
public function index(){
return view('index');
}
public function about(){
return view('pages.about');
}
}
这就是我手动写扩展控制器
后插入的phpstorm
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Routing\Controller; //I manually wrote extends Controller and selected this namespace
class PagesController extends Controller
{
public function index(){
...
在 Laravel 5.1 中正确的 use
代码应该是:
use Illuminate\Support\Facades\View;
在全局命名空间中存在一个辅助函数 view(),可用于简化语法:
return 查看('tickets.bus.index');
With this method, it is unnecessary to include use View; or include the root namespace, e.g., \View.
lukasgeiter 解释的概念对于理解 Laravel 至关重要,即使您选择使用辅助函数也是如此。
我是 laravel 5 的新手,目前被这个错误难住了:
FatalErrorException in TicketController.php line 18: Class 'App\Http\Controllers\View' not found
奇怪的是视图确实存在,我检查了路由是否确实路由到正确的控制器,当我尝试这样做时弹出错误:
return View::make('tickets.bus.index');
要么我在某处犯了错误,要么实施与 laravel 4
不同问题不在于实际视图,而在于 class View
。你会看到当你只是引用一个 class 比如 View::make('tickets.bus.index')
PHP 在你的 current namespace.[=16= 中搜索 class ]
在本例中为 App\Http\Controllers
。但是 View
class 显然不存在于控制器的命名空间中,而是存在于 Laravel 框架命名空间中。它还有一个位于 global 命名空间中的别名。
您可以通过在根命名空间前加上反斜杠来引用别名:
return \View::make('tickets.bus.index');
或在顶部添加导入语句:
use View;
存在一个辅助函数,view()
,它位于全局命名空间中,可用于简化语法:
return view('tickets.bus.index');
使用此方法,无需包含 use View;
或包含根命名空间,例如 \View
.
lukasgeiter 解释的概念对于理解 Laravel 至关重要,即使您选择使用辅助函数也是如此。
对我来说这是命名空间问题。我使用 php artisan 来创建控制器,但似乎 php artisan 使用了不同的命名空间(可能我必须更改 composer.json 中的某些内容来修复它,但我在 laravel)
Whoops, looks like something went wrong.
FatalErrorException in PagesController.php line 11:
Class 'App\Http\Controllers\Controller' not found
很好,我正在使用 phpStorm,它会自动插入适当的命名空间
确保正确检查命名空间。这就是我用 php artisan
创建控制器的方式namespace App\Http\Controllers; use App\Http\Requests; use App\Http\Controllers\Controller; //php artisan inserted. class PagesController extends Controller { public function index(){ return view('index'); } public function about(){ return view('pages.about'); } }
这就是我手动写扩展控制器
后插入的phpstormnamespace App\Http\Controllers; use App\Http\Requests; use Illuminate\Routing\Controller; //I manually wrote extends Controller and selected this namespace class PagesController extends Controller { public function index(){ ...
在 Laravel 5.1 中正确的 use
代码应该是:
use Illuminate\Support\Facades\View;
在全局命名空间中存在一个辅助函数 view(),可用于简化语法:
return 查看('tickets.bus.index');
With this method, it is unnecessary to include use View; or include the root namespace, e.g., \View.
lukasgeiter 解释的概念对于理解 Laravel 至关重要,即使您选择使用辅助函数也是如此。