Php 在中间件方法-Laravel 5中找不到类名
我正在尝试设置中间件。 我遵照这些指示: 我的代码是Php 在中间件方法-Laravel 5中找不到类名,php,class,laravel,middleware,laravel-5,Php,Class,Laravel,Middleware,Laravel 5,我正在尝试设置中间件。 我遵照这些指示: 我的代码是 <?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\RedirectResponse; class LoadVars { $comingevents = App\Number::where('item','events')->get(array('quantity')); 正如@Quasdunk在注释中指出的,当您引用一个开头没有反斜
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\RedirectResponse;
class LoadVars {
$comingevents = App\Number::where('item','events')->get(array('quantity'));
正如@Quasdunk在注释中指出的,当您引用一个开头没有反斜杠的类时,路径是相对的
意思是App\Number
将在当前名称空间中查找App
,然后查找Number
App\Http\Middleware & App\Number => App\Http\Middleware\App\Number
您只需在开始处添加一个\
,路径将被解释为绝对路径,实际上从何处使用该类并不重要
App\Http\Middleware & \App\Number => App\Number
Foo\Bar & \App\Number => App\Number
如果您希望代码更简洁,还可以使用use
语句导入类:
use App\Number;
class LoadVars {
// ...
$comingevents = Number::where('item','events')->get(array('quantity'));
// ...
}
注意对于use
语句,不需要反斜杠。所有路径都将是绝对路径。您必须通过在绝对名称空间前面加反斜杠来指定该名称空间:\App\Number
,否则它将相对于您当前所在的名称空间进行解释,即App\Http\Middleware
。或者你可以使用App\Number代码>在顶部,然后使用Number::where(…)访问它代码>谢谢你的提示。它帮助我了解了新的L5命名空间规则。是的,@Quasdung将我推向了正确的方向,后来我学会了在控制器的前端声明类。非常感谢你们两位!