gpt4 book ai didi

mysql - 如何在 Destroy 函数中删除具有多个参数的数据 - Laravel

转载 作者:行者123 更新时间:2023-11-29 09:41:34 24 4
gpt4 key购买 nike

我正在做简单的增删改查,如果 user_idhymn_idfavourite_list 表中的匹配,我想删除收藏列表表的列

这是我的删除路线:

Route::resource('fav_hymns', 'Api\favouriteController');
Route::delete('fav_hymns/{user_id}/{hymn_id}/', 'Api\favouriteController@destroy');

以及我在资源favouriteController中的“销毁”功能

public function destroy($user_id,$hymn_id)
{

$favourite_list = favourite_list::where('user_id','=',$user_id, 'AND', 'hymn_id', '=', $hymn_id)->delete();


if (!$favourite_list) {
return response()->json([
'success' => false,
'message' => 'Error: List not found'
], 400);
}

if ($favourite_list) {
return response()->json([
'success' => true
]);
} else {
return response()->json([
'success' => false,
'message' => 'List could not be deleted'
], 500);
}
}

但问题是,如果 $user_id 匹配并且 $hymn_id (在路由中)甚至不存在并且甚至不匹配,它会删除所有列,它正在删除所有列。

帮助将不胜感激,谢谢

最佳答案

您的删除 where() 条件此处不正确。你应该尝试一下。

try{

favourite_list::where('user_id', $user_id)
->where('hymn_id', $hymn_id)
->delete();

} catch(\Exception $e){
return response()->json([
'success' => false,
'message' => 'List could not be deleted'
], 500);
}


return response()->json([
'success' => true
]);

每个条件应包含在不同的 where() 下。如果您想要 SQL 格式...尝试使用 whereRaw()

关于mysql - 如何在 Destroy 函数中删除具有多个参数的数据 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522511/

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