gpt4 book ai didi

php - Laravel:删除数据的 Controller 功能

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:24 24 4
gpt4 key购买 nike

我将首先解释表格以及代码的工作原理

表格

我有:

  • 具有以下字段的项目:id、slug、order、public、pathheader 和 pathhome。
  • project_translations 字段:id、locale、project_id、title 和 caption。
  • 具有以下字段的客户端:id、name、slug 和 priority。
  • client_project 的字段:id、client_id 和 project_id

代码是如何工作的

当我创建一个项目时,我也创建了两个项目翻译(每个区域设置一个,例如:'es','en')。然后我选择一个客户,这就形成了关系 client_project。

当我删除项目时,我同时删除了具有相同 project_id 的 project_translations 和 project_id 相同的 client_project 行。

我想要什么

当我删除客户时,删除字段 client_id 具有相同值的行(这是有效的),然后删除与我删除的客户相关的项目和项目的 projects_translations。

我的函数目前看起来如何

public function destroyClient($id) //Destruir cliente y todo lo relacionado de la bbdd
{
$cliente = Client::find($id);
$cliente->delete(); //delete the client
DB::table('client_project')->where('client_id',$id)->delete(); //delete the client_project relations which field client_id is the same that the client i just deleted.

return redirect()->route('admin.clients');
}

最佳答案

希望对你有帮助

public function destroyClient($id) //Destruir cliente y todo lo relacionado de la bbdd
{
$cliente = Client::find($id);
$cliente_project = DB::table('client_project')->where('client_id', $id)->first();
$project_id = $cliente_project->project_id;
$cliente->delete(); //delete the client
DB::table('client_project')->where('client_id',$id)->delete(); //delete the client_project relations which field client_id is the same that the client i just deleted.

DB::table('projects')->where('id',$project_id)->delete();
DB::table('project_translations')->where('project_id',$project_id)->delete();

return redirect()->route('admin.clients');
}

也许更好的方法是使用外键

关于php - Laravel:删除数据的 Controller 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45567009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com