«Невозможно объявить класс App \ Http \ Controllers \ category, потому что имя уже используется» - PullRequest
0 голосов
/ 07 мая 2019

"Невозможно объявить класс 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 ]

1 голос
/ 07 мая 2019

Ваш класс контроллера category конфликтует с именем вашей модели класса category. Измените ваш контроллер на CategoryController , это должно исправить проблему, также имя класса всегда должно начинаться с заглавной буквы.

Вы можете объявить классы с одинаковыми именами в разных пространствах имен, но затем вы не можете вызвать класс в другой класс с тем же именем, это вызовет конфликт имен. Итак, ваша ошибка выскакивает из-за следующего: -

use App\category; 
class category extends Controller

вам нужно изменить имя одного из них.

0 голосов
/ 07 мая 2019

Я думаю, вы должны использовать этот код.

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

Надеюсь, это поможет вам.

0 голосов
/ 07 мая 2019

Проблема в том, что вы использовали 2 класса с именем category в этом файле.App\category и App\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();

    // ...
}

Я надеюсьэто поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...