Laravel обновляет объект из json со многими параметрами - PullRequest
1 голос
/ 08 июля 2019

Каков наилучший способ обновить мой объект в базе данных по моему запросу?

В настоящее время я обновляю каждое поле и затем сохраняю объект:

$user = User::findOrFail($id);
$user->username = $request->username;
$user->role = $request->role;
$user -> save();

Также этоне требуется наличие всех полей.Один запрос может обновить роль пользователя, но другой может обновить только имя пользователя.

Как я могу зациклить и обновить только существующие поля из запроса или есть способ передать весь запрос как параметр и установить только идентификатор и красноречивый, чтобы знать, что с ним делать?

1 Ответ

2 голосов
/ 08 июля 2019

Вы можете просто сделать foreach() над значениями в $request и присвоить их своему $user перед сохранением:

$user = User::findOrFail($id);
foreach($request->except(["_token"]) AS $key => $value){
  $user->{$key} = $value;
  // Example: $key = "username", $value = "BobSmith"; `$user->username = "BobSmith";`
}
$user->save();

Примечание. Используйте $request->except(), чтобы пропустить поля, которые отправляются в запросе, но не существуют в виде столбцов в таблице users, например _token (требуется в POST запросах).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...