在Laravel 5中找不到"App\Http\Controllers\Artisan"类

Ari*_*que 13 php namespaces laravel laravel-5 artisan

我在新的Laravel,并试图通过编码学习.我创建了迁移和种子,当我从终端调用它们时工作正常,但是我想在我的HomeController中尝试这个代码,我得到了一个很大的错误.

错误

FatalErrorException in HomeController.php line 23: 
Class 'App\Http\Controllers\Artisan' not found
Run Code Online (Sandbox Code Playgroud)

家庭控制器中的代码

$hasTable = Schema::hasTable('users');      

if ($hasTable==0)
        {
            echo "call cli to migration and seed";

            $migrate = Artisan::call('migrate');
            $seed = Artisan::call('db:seed');

            echo "Migrate<br>";

            print_r($migrate);
            echo "Seed<br>";
            print_r($seed);
        }
Run Code Online (Sandbox Code Playgroud)

我相信,如果我加载正确的命名空间,我可以避免这个错误,但我不确定.

Cli*_*ive 27

假设您Artisan在config/app.php中设置了默认别名,那么您只需要导入正确的命名空间即可.

添加文件的顶部:

use Artisan;
Run Code Online (Sandbox Code Playgroud)

或者在代码中使用完全限定的命名空间:

$migrate = \Artisan::call('migrate');
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因没有设置别名,请使用

use Illuminate\Support\Facades\Artisan;
Run Code Online (Sandbox Code Playgroud)

代替.