"Cannot declare class App\Http\Controllers\category because the name is already in use" 无法声明类App\Http\Controllers\category,因为该名称已被使用。

11 浏览
0 Comments

"Cannot declare class App\Http\Controllers\category because the name is already in use" 无法声明类App\Http\Controllers\category,因为该名称已被使用。

“无法声明类App\Http\Controllers\category,因为该名称已被使用”。请问有人可以解释如何修复它吗?

name = $request->name;
        $categoryEntry->description = $request->description;
        $categoryEntry->publication_status = $request->publication_status;
        $categoryEntry->save();
        return redirect('/category/save')->with('msg','数据已插入');
    }
}

将类名category更改为categoryController以解决命名冲突问题。

0
0 Comments

出现这个问题的原因是在代码中重复使用了相同的类名"category"。在代码中,已经有一个类"App\Http\Controllers\category",但是又在同一个命名空间下声明了一个同名的类"App\category",导致了命名冲突。

解决这个问题的方法是修改其中一个类的命名,以避免重名。可以将其中一个类重命名为不同的名称,例如将"App\category"重命名为"App\CategoryModel"。

修改后的代码如下所示:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\category AS CategoryModel; // 将类名重命名为CategoryModel
class category extends Controller
{
    public function index(){
        return view('admin.category.category_entry');
    }
    public function save(Request $request){
        $categoryentry= new CategoryModel; // 使用重命名后的类名
        $categoryentry->name=$request->name;
        $categoryentry->description=$request->description;
        $categoryentry->publication_status=$request->publication_status;
        $categoryentry->save();
        return redirect('/category/save')->with('msg','Data inserted');
    }
}

通过将类名改为不同的名称,就避免了重名导致的命名冲突问题。这样可以确保代码的正常运行。

0
0 Comments

问题的原因是控制器类category与模型类category发生了名称冲突。解决方法是将控制器更名为CategoryController,同时类名应以大写字母开头。在不同的命名空间中可以声明相同名称的类,但不能在另一个同名类中调用该类,否则会导致名称冲突。因此,错误是由以下代码引起的:

use App\category;
class category extends Controller

你需要更改其中一个的名称。

当然,它们应该位于不同的命名空间中。可能只是复制粘贴错误,你可能使用了错误的命名空间...只要它们位于不同的命名空间中,就没有理由不能同时将模型和控制器命名为category

是的,他可以这样做,但他不能这样写use App\category; class category extends Controller

如果通过composer dump-autoload命令无法解决问题,可以参考这个解决方案:stackoverflow.com/a/64385832/308578

0
0 Comments

问题的原因是在文件中使用了两个名为category的类App\categoryApp\Http\Controllers\category

你有两种解决方法:

  1. 通过更改类名来解决命名冲突。例如,将App\Http\Controllers\category更改为App\Http\Controllers\categoryController
  2. 将导入的App\category重命名为文件中不存在的其他名称,如下所示:

use App\category as categoryModel;
// ...
public function save(Request $request){
    $categoryentry=new categoryModel();
    // ...
}

希望这能帮到你。

0