“无法声明类 App\Http\Controllers\category,因为该名称已在使用中”
Posted
技术标签:
【中文标题】“无法声明类 App\\Http\\Controllers\\category,因为该名称已在使用中”【英文标题】:"Cannot declare class App\Http\Controllers\category because the name is already in use"“无法声明类 App\Http\Controllers\category,因为该名称已在使用中” 【发布时间】:2019-09-24 13:41:48 【问题描述】:“无法声明类 App\Http\Controllers\category,因为该名称已在使用中”。如何解决它,请有人解释我
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\category;
class category extends Controller
public function index()
return view('admin.category.category_entry');
public function save(Request $request)
$categoryentry=new category();
$categoryentry->name=$request->name;
$categoryentry->description=$request-> description;
$categoryentry->publication_status=$request->publication_status;
$categoryentry->save();
return redirect('/category/save')->with('msg','Data inserted');
【问题讨论】:
应该是 CategoryController no Category 所以你没有同名的模型类和控制器类 模型名称和控制器名称必须不同..为什么你使用相似的名称..这会产生歧义。 【参考方案1】:您的控制器类 category
与您的模型类 category
发生名称冲突。
将您的控制器更改为 CategoryController,它应该可以解决问题,并且类名应该始终以大写开头。
你可以在不同的命名空间中声明同名的类,但是你不能将这个类调用到另一个同名的类中,这会导致名称冲突。因此,由于以下原因,您的错误正在弹出:-
use App\category;
class category extends Controller
您需要更改其中任何一个的名称。
【讨论】:
他们肯定在一个单独的命名空间中吗?这可能只是一个错误的过去错误,你有错误的命名空间......没有理由他不能将模型和控制器命名为“类别”,只要它们位于不同的命名空间中...... 是的,他当然可以,但他不能这样做use App\category; class category extends Controller
。 ;
我遇到了这个问题,composer dump-autoload 没有解决,然后使用这个解决方案***.com/a/64385832/308578【参考方案2】:
问题是您在此文件中使用了 2 个名为 category
的类。 App\category
和 App\Http\Controllers\category
。
您有 2 个选项来解决此问题:
-
通过更改类名解决名称冲突。例如
将
App\Http\Controllers\category
更改为
App\Http\Controllers\categoryController
将导入的App\category
重命名为不会在此文件中存在的其他名称,如下所示:
use App\category as categoryModel;
// ...
public function save(Request $request)
$categoryentry=new categoryModel();
// ...
希望对你有帮助。
【讨论】:
【参考方案3】:我认为你应该使用这段代码。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\category AS category_model;
class category extends Controller
public function index()
return view('admin.category.category_entry');
public function save(Request $request)
$categoryentry= new category_model;
$categoryentry->name=$request->name;
$categoryentry->description=$request->description;
$categoryentry->publication_status=$request->publication_status;
$categoryentry->save();
return redirect('/category/save')->with('msg','Data inserted');
希望对你有所帮助。
【讨论】:
以上是关于“无法声明类 App\Http\Controllers\category,因为该名称已在使用中”的主要内容,如果未能解决你的问题,请参考以下文章