Laravel &引用;无法声明类App\Http\Controllers\category,因为该名称已在使用中;

Laravel &引用;无法声明类App\Http\Controllers\category,因为该名称已在使用中;,laravel,laravel-5,Laravel,Laravel 5,“无法声明类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.catego

“无法声明类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,它将解决此问题,并且类名应始终以大写开头

您可以在不同的名称空间中声明具有相同名称的类,但不能将该类调用到具有相同名称的另一个类中,这将导致名称冲突。因此,出现您的错误是因为以下原因:-

use App\category; 
class category extends Controller

您需要更改其中任何一个的名称。

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

您有两个选项可以修复此问题:

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

  • 我希望这将对您有所帮助。

    我认为您应该使用此代码

    <?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');
        }
    }
    

    应该是CategoryController no Category,因此您没有同名的模型类和控制器类模型名称和控制器名称必须不同..为什么对两者使用相似的名称..这造成了歧义。它们肯定位于单独的命名空间中吗?这可能只是一个过去的错误,你有错误的名称空间。。。他没有理由不能将模型和控制器都命名为“category”,只要它们在不同的名称空间中……是的,他当然可以,但他不能这样做
    use-App\category;类类别扩展控制器
    ;我有这个问题,并没有解决作曲家转储自动加载然后使用这个解决方案
    <?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');
        }
    }