Я столкнулся с проблемой, когда оператор use в моем контроллере выбрасывает
Cannot use App\Enums\Division as Division because the name is already in use
Перечисление Division имеет следующую структуру:
namespace App\Enums;
use App\Enums;
class Division extends Enum
{
...
}
Это перечисление используетсяв модели следующим образом:
namespace App;
use Carbon\Carbon;
use App\Enums\Division;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Employee extends Model
{
...
}
Контроллер, из которого выбрасывается это исключение, имеет следующую структуру:
namespace App\Http\Controllers;
use Carbon\Carbon;
use App\Employee;
use App\Division;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AttendanceController extends Controller
{
...
}
EmployeeController имеет ту же структуру, но не генерирует столкновения в пространстве именошибки
namespace App\Http\Controllers;
use Carbon\Carbon;
use App\Employee;
use Illuminate\Http\Request;
use App\Enums\Month;
use App\Division;
use Illuminate\Support\Facades\Auth;
class EmployeeController extends Controller
{
...
}
Я не уверен, почему это вызывает проблему, поскольку я использую ту же структуру для моего класса EmployeeController, и она работает безупречно. ПРИМЕЧАНИЕ : у меня также есть модель с именем Division, поэтому в моем AttendanceController есть «use App Division», не путать ее с файлом enum.
Некоторые предположили, что мне нужен псевдонимдля App \ Enums \ Division, но мой EmployeeController не жаловался, и мне не понадобился псевдоним.Другие предполагают, что это проблема php - я на 7.0.12.Любая помощь с этим будет принята с благодарностью!