在运行我的数据库种子(以及其他控制台命令)时,我遇到了命名冲突。
我所有的模型都存储在app/Models
目录中,并且在App\Models
命名空间中。此目录中有一个名为Model.php
扩展 laravel 基础模型的基础模型。
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model as BaseModel;
abstract class Model extends BaseModel {}
我的一些模型扩展了这个基类,例如
<?php namespace App\Models;
class User extends Model {}
我的一些模型直接扩展了 eloquent 模型,例如
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Sport extends Model {}
当我的应用程序通过 http 访问时,这工作正常,并且没有命名冲突。但是,当我尝试运行控制台命令时,例如db:seed
,我收到以下错误:
PHP Fatal error: Cannot use Illuminate\Database\Eloquent\Model as Model because the name is already in use in /home/vagrant/Code/wisletics/app/Models/Sport.php on line 3
我最初的猜测是 laravel 以某种方式编译种子文件,这导致了冲突。有没有人有任何想法,或者其他人已经遇到过这个问题?