我无法通过ID删除它
我在这里也有一些用于Model的代码
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');
}
答案 0 :(得分:0)
问题出在您看来。例如,您有路线category.destroy
,但是在创建链接时需要传递要销毁的模型的id
,而错过它,这就是为什么会出现此错误的原因。
答案 1 :(得分:0)
我认为问题出在您的route / web.php文件中 您必须传递一个参数来销毁方法 例如:
Route::get('delete_category/{id}', 'CategoryController@destroy');
您的调用URL看起来像http://127.0.0.1:8000/delete_category/1
这里1将作为id
变量的值
答案 2 :(得分:0)
您遇到一个错字错误,需要进行一些更改
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');
}
答案 3 :(得分:0)
就我而言,我忘记了“ Request”类的名称。
正确的参数定义。
public function displayId(Request $Visitor){
return $Visitor->id;
}
错误的参数定义。
public function displayId($Visitor){
return $Visitor->id;
}
答案 4 :(得分:-2)
解决方案:php artisan route:cache 在终端上工作。 我使用那条线并且它起作用了。首先,您检查 php artisan route:list,如果在列表中没有看到 destroy/{id},则应该使用该命令。为了清楚说明您的路线没有看到 {id} 但是当您执行命令时,web.php 中的路线路径会自行更新