Слишком мало аргументов для функции App \ Http \ Controllers \ CategoryController :: destroy (), 0 передано и ожидается ровно 1 - PullRequest
0 голосов
/ 15 июня 2019

я не могу удалить его по id

и у меня есть код для модели тоже

class Category extends Model
{

    // Table Name
    protected $table = 'categories';
    // Primary Key

    public $primaryKey = 'id';
    // TimeStamps
    public $timestamps = true;

    protected $fillable= ['name','icon'];


    public function getAllCategory(){
        return DB::table(categories)->get();

    }

    public function createCategory($name,$icon){
            $category= $this->create([
                'name' => $name,
                'icon' => $icon,
            ]);
            return $category;
    }
}

// здесь есть функция в контроллере:

public function destroy($id)
{
    $category = Category::findOrFail($id);
    $category->delele();
    return redirect('/admin.category');

}

Ответы [ 3 ]

0 голосов
/ 15 июня 2019

Я думаю, что проблема в вашем файле router / web.php. Вы должны передать один аргумент для метода уничтожения, например:

Route::get('delete_category/{id}', 'CategoryController@destroy');

И ваш вызывающий URL будет выглядеть как http://127.0.0.1:8000/delete_category/1 Здесь 1 будет приниматьв качестве значения id переменная

0 голосов
/ 25 июня 2019

У вас есть одна опечатка, и вам нужно внести некоторые изменения

public function destroy($id)
{
    $category = Category::findOrFail($id);
    $category->delete(); //type mistake
    return redirect('/admin.category');  // it seems like route name

}

Лучший код

public function destroy($id)
{
     $category = Category::findOrFail($id);
      if($category) {
       $category->delete();
       return redirect()->route('admin.category' ,['error' => $error]);
      }  

    return redirect()->route('admin.category');
}
0 голосов
/ 15 июня 2019

Проблема скорее где-то на ваш взгляд. Например, у вас есть маршрут category.destroy, но вам нужно передать id модели, которую вы хотите уничтожить при создании ссылки, и вы пропустили ее, и именно поэтому вы получаете эту ошибку.

...