“无法声明类App \ Http \ Controllers \ category,因为该名称已被使用”

时间:2019-05-06 22:55:23

标签: 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.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');
    }
}

3 个答案:

答案 0 :(得分:1)

您的控制器类category与模型类category发生名称冲突。 将您的控制器更改为 CategoryController ,它将解决此问题,并且类名应始终以大写字母开头。

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

use App\category; 
class category extends Controller

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

答案 1 :(得分:0)

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

您有2个解决方案:

  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();

    // ...
}

我希望这会对您有所帮助。

答案 2 :(得分:0)

我认为您应该使用此代码。

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

希望这对您有所帮助。