Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无法删除子级存在Laravel CRUD的父级_Sql_Laravel_Crud - Fatal编程技术网

Sql 无法删除子级存在Laravel CRUD的父级

Sql 无法删除子级存在Laravel CRUD的父级,sql,laravel,crud,Sql,Laravel,Crud,这是当我尝试删除父类别下产品的类别条目时引发的错误: Illuminate \ Database \ QueryException SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`store`.`products`, CONSTRAINT `products_category_id

这是当我尝试删除父类别下产品的类别条目时引发的错误:

Illuminate \ Database \ QueryException
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent     row: a foreign key constraint fails (`store`.`products`, CONSTRAINT     `products_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`))    (SQL: delete from `categories` where `id` = 1)
在我做了一些研究之后,我知道你不能删除一个有孩子的父母

当我删除类别id时,我不确定如何加入具有我的类别id的产品。这样,我可以删除具有关联类别id的所有产品

以下是我的删除功能:

public function postDestroy() {
    $category = Category::find(Input::get('id'));

    if ($category) {
        $category->delete();
        return Redirect::to('admin/categories/index')
            ->with('message', 'Category Deleted');
    }

    return Redirect::to('admin/categories/index')
        ->with('message', 'Something went wrong, please try again');

} 

如果您想删除任何具有相同类别的产品,我将更改您的category类,该类扩展为以下内容:

class Category extends Eloquent
{
    // ... all your existing code...
    public function delete()
    {
        // Delete all of the products that have the same ids...
        Products::where("category_id", $this->id)->delete();

        // Finally, delete this category...
        return parent::delete();
    }
}

现在调用$category->delete()将删除所有具有相同category\u id的产品以及该类别本身。

如果要删除具有相同类别的任何产品,我将更改您的category类,该类将扩展为以下内容:

class Category extends Eloquent
{
    // ... all your existing code...
    public function delete()
    {
        // Delete all of the products that have the same ids...
        Products::where("category_id", $this->id)->delete();

        // Finally, delete this category...
        return parent::delete();
    }
}

现在调用$category->delete()将删除所有具有相同category\u id的产品以及该类别本身。

如果要删除具有相同类别的任何产品,我将更改您的category类,该类将扩展为以下内容:

class Category extends Eloquent
{
    // ... all your existing code...
    public function delete()
    {
        // Delete all of the products that have the same ids...
        Products::where("category_id", $this->id)->delete();

        // Finally, delete this category...
        return parent::delete();
    }
}

现在调用$category->delete()将删除所有具有相同category\u id的产品以及该类别本身。

如果要删除具有相同类别的任何产品,我将更改您的category类,该类将扩展为以下内容:

class Category extends Eloquent
{
    // ... all your existing code...
    public function delete()
    {
        // Delete all of the products that have the same ids...
        Products::where("category_id", $this->id)->delete();

        // Finally, delete this category...
        return parent::delete();
    }
}

现在调用$category->delete()将删除所有具有相同category\u id的产品,以及该类别本身。

可能重复@Ambrish。。。不是真的,这是一个关于Laravel的问题,虽然这是一个相关的问题,但它不是问为什么查询失败,而是如何修复“Laravel风格”可能重复的@Ambrish。。。不是真的,这是一个关于Laravel的问题,虽然这是一个相关的问题,但它不是问为什么查询失败,而是如何修复“Laravel风格”可能重复的@Ambrish。。。不是真的,这是一个关于Laravel的问题,虽然这是一个相关的问题,但它不是问为什么查询失败,而是如何修复“Laravel风格”可能重复的@Ambrish。。。不是真的,这是一个关于Laravel的问题,虽然这是一个相关的问题,但它不是问为什么查询失败,而是问如何修复它“Laravel风格”,谢谢@timgws。是我原来的控制器。是更新后的控制器,我在其中添加了您建议的内容,但仍然会出现错误。如果我将extends Basecontroller更改为Eloquent,则会出现错误。是的,因为您正在编辑控制器。您不需要编辑控制器,只需编辑模型即可。在
app/models
中更改类别模型(该模型应扩展为Eloquent)。这样,您就可以保持
$category->delete
和控制器的其余部分不变。将来,当您删除一个类别时,它将删除与其关联的产品!我还有一个问题要发布,那就是在创建产品的同一页面上更新产品。如果我想不出答案,我会回到这篇文章,如果你不介意的话,我会把问题链接发上去。谢谢@timgws。是我原来的控制器。是更新后的控制器,我在其中添加了您建议的内容,但仍然会出现错误。如果我将extends Basecontroller更改为Eloquent,则会出现错误。是的,因为您正在编辑控制器。您不需要编辑控制器,只需编辑模型即可。在
app/models
中更改类别模型(该模型应扩展为Eloquent)。这样,您就可以保持
$category->delete
和控制器的其余部分不变。将来,当您删除一个类别时,它将删除与其关联的产品!我还有一个问题要发布,那就是在创建产品的同一页面上更新产品。如果我想不出答案,我会回到这篇文章,如果你不介意的话,我会把问题链接发上去。谢谢@timgws。是我原来的控制器。是更新后的控制器,我在其中添加了您建议的内容,但仍然会出现错误。如果我将extends Basecontroller更改为Eloquent,则会出现错误。是的,因为您正在编辑控制器。您不需要编辑控制器,只需编辑模型即可。在
app/models
中更改类别模型(该模型应扩展为Eloquent)。这样,您就可以保持
$category->delete
和控制器的其余部分不变。将来,当您删除一个类别时,它将删除与其关联的产品!我还有一个问题要发布,那就是在创建产品的同一页面上更新产品。如果我想不出答案,我会回到这篇文章,如果你不介意的话,我会把问题链接发上去。谢谢@timgws。是我原来的控制器。是更新后的控制器,我在其中添加了您建议的内容,但仍然会出现错误。如果我将extends Basecontroller更改为Eloquent,则会出现错误。是的,因为您正在编辑控制器。您不需要编辑控制器,只需编辑模型即可。在
app/models
中更改类别模型(该模型应扩展为Eloquent)。这样,您就可以保持
$category->delete
和控制器的其余部分不变。将来,当您删除一个类别时,它将删除与其关联的产品!我还有一个问题要发布,那就是在创建产品的同一页面上更新产品。如果我想不出答案,我会回到这篇文章,如果你不介意的话,我会发布问题链接。