Laravel 5.5 - 助手 class 在 view/blade 模板内工作,但在控制器内不起作用
Laravel 5.5 - Helper class works inside view/blade template, but doesn't work inside controllers
我为自己创建了一个名为 Perm 的助手 class,它是为 return 当前会话的用户准备的(我知道,我可以使用默认值 auth/user,但那不会'比从头开始创建一个更有趣!)
..可悲的是,创建的助手 class 只能在视图中工作,但在控制器中根本不起作用..这有点不对劲。
每当我尝试在控制器中使用它时,它会弹出:
"Class 'App\Http\Controllers\Perm' not found"
如有任何帮助,我将不胜感激。
HelperServiceProvider.php:
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class HelperServiceProvider extends ServiceProvider
{
public function boot()
{
//
}
public function register()
{
foreach( glob (app_path().'/Helpers/*.php' ) as $filename ) // register all helpers
{
require_once($filename);
}
}
}
Helpers/PermHelper.php:
use App\User;
class Perm
{
public static function user()
{
if(!session('user_id')) return null;
return User::find(session('user_id'));
}
}
config/app.php 的部分,'providers' 数组:
// Custom
App\Providers\HelperServiceProvider::class,
如果您也遇到了这个问题。
使用适当的命名空间。
我为自己创建了一个名为 Perm 的助手 class,它是为 return 当前会话的用户准备的(我知道,我可以使用默认值 auth/user,但那不会'比从头开始创建一个更有趣!)
..可悲的是,创建的助手 class 只能在视图中工作,但在控制器中根本不起作用..这有点不对劲。
每当我尝试在控制器中使用它时,它会弹出:
"Class 'App\Http\Controllers\Perm' not found"
如有任何帮助,我将不胜感激。
HelperServiceProvider.php:
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class HelperServiceProvider extends ServiceProvider
{
public function boot()
{
//
}
public function register()
{
foreach( glob (app_path().'/Helpers/*.php' ) as $filename ) // register all helpers
{
require_once($filename);
}
}
}
Helpers/PermHelper.php:
use App\User;
class Perm
{
public static function user()
{
if(!session('user_id')) return null;
return User::find(session('user_id'));
}
}
config/app.php 的部分,'providers' 数组:
// Custom
App\Providers\HelperServiceProvider::class,
如果您也遇到了这个问题。 使用适当的命名空间。