Wpis z mikrobloga

#laravel #php
Do aplikacji dodałem możliwość dodawania pytań i odpowiedzi. Całość od użytkownika leci requestem do tablicy i ląduje w bazie danych. Chciałbym aby każda odpowiedź była unikalna. Tzn żeby do danego pytania użytkownik nie mógł dodać dwóch takich samych odpowiedzi. Myślę że można to zrobić ustawiając rules dla requesta tylko pytanie jakie dodać. Aby każde pole textbox miało inna wartość.
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

'answer' => [
'required',
Rule::unique('answers')->where(function ($query) use ($userId, $questionId) {
return $query->where('user_id', '=', $userId)->where('question_id', '=', $questionId);
}),
],
  • Odpowiedz
@FREEQ: Z tego co rozumiem, to wtedy inne pytanie już nie może mieć takiej samej odpowiedzi jaka została dodana we wcześniejszym pytaniu. Mi chodzi o to, żeby na tabele answers nie zakładać unique. Tylko podczas dodawania sprawdzić 7 pól textowych i sprawdzić czy któreś z nich są takie same.

Próbowałem użyć

different:field
ale coś to nie bardzo działa
  • Odpowiedz
  • 0
@plushy no wiem, ale nie rozumiem co ma mi to dać

Chce tylko sprawdzić za pomocą rulsow czy dane wprowadzone do textboxow przez użytkownika się dubluja. Tylko nie bardzo wiem jak użyć different:field gdy pól mam 7 i chce aby każde było inne
  • Odpowiedz
  • 0
@plushy no dobra czyli tak w prosty sposób jak byś to zrobił.

Masz 7 textboxow. Ale nie musisz wypełnić wszystkich. Możesz wypełnić tylko dwa. Ale te dwa muszą być różne od siebie. Jeśli wypelnisz 4 lub np 7 to każde z nich musi być unikalne.

Ale przy dodawaniu kolejnego pytania z innym id odpowiedzi mogą być już takie same jak w pierwszym pytaniu.
  • Odpowiedz