Я создаю сайт кафе, потому что хочу изучать Laravel, и мне нравится кофе.У меня есть панель инструментов, где пользователь может управлять своим кофе.Он может вручную выбирать из всех видов кофе.С моим подходом я обнаружил 2 основных проблемы, которые связаны с вопросом.
1.Задача
Допустим, пользователь добавил 2 кофе с идентификатором 1 и 2
id | user_id | selected_coffee | created_at | updated_at
----------------------------------------------------------------
1 | 1 | 1 | xxxxxxxxxx | xxxxxxxxxx
1 | 1 | 2 | xxxxxxxxxx | xxxxxxxxxx
Если пользователь выбирает в этих заказах, потому что он может выбрать несколько.* Допустим, он выбрал идентификатор кофе 1, 2 и последний 3. *
Поскольку код обнаруживает, что первый идентификатор находится в базе данных, онигнорирует другие значения.
2.Проблема
Допустим, пользователь1 добавил 2 кофе с идентификатором 1 и 2
id | user_id | selected_coffee | created_at | updated_at
----------------------------------------------------------------
1 | 1 | 1 | xxxxxxxxxx | xxxxxxxxxx
1 | 1 | 2 | xxxxxxxxxx | xxxxxxxxxx
Пользователь2 может выбрать кофе, но это не такнаписано в базе данных, которая мне нужна для визуального отображения на веб-интерфейсе
Я знаю, что это плохо видно, чтобы добавить 2 проблемы, но я думаю, если мы сможем исправить номер 1. Проблематогда проблема 2. исчезнет.
Вот мой код, который делает его уникальным:
public function store(Request $request)
{
app('App\Http\Controllers\ScoreController')->store($request);
$message = ['selected_coffee.unique' => 'Check Coffee ID already exist'];
$this->validate($request,[
'selected_coffee' => 'unique:manage_coffees',
],$message);
if($request->input('checkedDrink') != null){
foreach ($request->input('checkedDrink') as $selected_id) {
$manage_coffee = new ManageCoffee();
$manage_coffee->user_id = \Auth::user()->id;
$manage_coffee->selected_coffee = (int)$selected_id;
$manage_coffee->save();
}
}
return redirect('dashboard/coffee');
}
Я нашел валидатор в StackOverflow, но он не был хорошо объяснен,Я думаю, что я должен сделать предложение where в -> validate , но я не знаю, куда мне его поместить.
Надеюсь, вы, ребята, сможете мне помочь.
Торстен