不能在我的班级中使用DB :: table。我得到一个handleShutdown。 请有人告诉我原因。 我花了好几个小时,我可能会发疯。
按照以下代码:
应用程序/ ACL / Acl.php
namespace AccessControl; class Acl { public function hasPermission($group_id, $module_name, $permission_type) { $result = DB::table('permission')->get(); return $result; } }
应用程序/ ACL / AclFacade.php
namespace AccessControl\Facades; use Illuminate\Support\Facades\Facade; class Acl extends Facade { protected static function getFacadeAccessor() { return 'acl'; } }
应用程序/ ACL / AclServiceProvider
namespace AccessControl; use Illuminate\Support\ServiceProvider; use Illuminate\Foundation\AliasLoader; class AclServiceProvider extends ServiceProvider { public function register() { // Register 'acl' instance container to our acl object $this->app['acl'] = $this->app->share(function($app) { return new Acl; }); // Shortcut so developers don't need to add an Alias in app/config/app.php $this->app->booting(function() { $loader = AliasLoader::getInstance(); $loader->alias('Acl', 'AccessControl\Facades\Acl'); }); } }
app.php
'providers'=>阵列(
'照亮\基金会\提供商\ ArtisanServiceProvider', '照亮\身份验证\ AuthServiceProvider', 'AccessControl的\ AclServiceProvider',
composer.js
"psr-0": { "App\\": "app/", "App\\Acl\\": "app/acl", [...] "classmap": [ "app/commands", "app/acl", [...]
我使用了命令
Composer Dump。
答案 0 :(得分:1)
你必须告诉PHP它在根命名空间中:
$result = \DB::table('permission')->get();
或者在.php文件的顶部使用它:
use DB;