Вы в значительной степени поняли это правильно.Вы хотите проверить базу данных, чтобы увидеть, существует ли продвижение по двум параметрам, которые отправляются через объект $request
.Если это так, не позволяйте сделать новую акцию.Как и сейчас, всегда будет возвращать 422, поскольку эти значения уже есть в базе данных, а коллекция будет истинным значением.
Во-первых, необходимо правильно получить переменные из $request
:
public function whateverYourFunctionIsCalled(Request $request){
$promocionid = $request->get('promocion_id');
$userid = $request->get('user_id');
// Etc
}
Затем в той же функции вызовите запрос так же, как вы:
$exists= PromocionesFavoritasUsers::where('user_id',$userid)->where('promocion_id',$promocionid )->first();
Проверьте, не было ли получено точное совпадение (не нулевое), иесли есть, не двигайтесь вперед:
if(isset($exists))
{
return response()->json([$query,
'message' => 'esta promocion ya ha sido agregada anteriormente'],422);
}else{ // Create a new promotion }