“无法声明类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');
}
}
答案 0 :(得分:1)
您的控制器类category
与模型类category
发生名称冲突。
将您的控制器更改为 CategoryController ,它将解决此问题,并且类名应始终以大写字母开头。
您可以在不同的命名空间中声明具有相同名称的类,但是您不能将其调用到具有相同名称的另一个类中,这将导致名称冲突。因此,由于以下原因,您的错误弹出:-
use App\category;
class category extends Controller
您需要更改其中任何一个的名称。
答案 1 :(得分:0)
问题是您在此文件中使用了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();
// ...
}
我希望这会对您有所帮助。
答案 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');
}
}
希望这对您有所帮助。