Я недавно начал использовать фреймворк Laravel в качестве бэкэнда для моего нового проекта. Для внешнего интерфейса я использую Angular 8+. Обе области все еще относительно новы для меня, и в настоящее время я работаю над маршрутизацией API и нуждаюсь в вашем совете.
У меня есть таблица пользователей, где я храню несколько пользовательских настроек. Я хотел бы обновить их соответственно. В основном это булевы значения. Теперь у меня есть UserController. При этом я хочу обрабатывать запросы PUT.
Теперь к моему вопросу: как настроить маршрутизацию, если я хочу обновить настройки пользователя при различных действиях (например, обновление Action1 View1 + View2 или обновление Action2 View3)? Должен ли я обрабатывать все это в одной функции или в нескольких функциях контроллера? Если есть несколько функций, как должна выглядеть маршрутизация?
Несколько маршрутов и функция, подобная этой?
Route::middleware('api')->get('/user/{userid}', 'UserController@show');
Route::middleware('api')->put('/user/{userid}/updateViewAction1', 'UserController@updateViewAction1');
Route::middleware('api')->put('/user/{userid}/updateViewAction2', 'UserController@updateViewAction2');
или
Если операторы внутри моей функции, но как обновить только данные из запроса? Angular передает истину / ложь из, поэтому я проверяю, если для истины, и устанавливаю значение в 1.
public function updateView($userId, Request $request)
{
if($request->query('view1') == "true"){ $view1 = 1; } else {$view1 = 0;}
if($request->query('view2 ') == "true"){ $view2 = 1; } else {$view2 = 0;}
$query = \DB::table('users')
->where('userId', '=', $userId)
->update(
['view1' => $view1,
'view2 ' => $view2 );
}
Кажется, это не правильно, но я не могу думать ни о чем другом. На этом этапе аутентификация не рассматривается. Поскольку в будущем будет более 20 настроек, я ищу эффективное решение.