Я пытаюсь обновить две таблицы в Laravel. Но я не знаю, сможете ли вы сделать это при использовании ассоциативного массива с помощью Object-> update ($ associative-array);
Я сделал последовательность обновлений в laravel, которая обновляет пользователя и местоположение в двух отдельных таблицах с помощью внешнего ключа в пользовательской таблице. Я попытался обновить обе таблицы, выполнив операторы update с объектами таблиц. Я попробовал это следующим образом:
$user->update($attributes);
$user->update($attributes); $location->update($attributes);
Но это только обновит пользовательскую таблицу и пропустит таблицу местоположений. Массив $ attribute содержит данные нескольких столбцов пользователя и местоположения таблицы. Массив находится в порядке от первого столбца таблицы пользователя до последнего столбца таблицы местоположений.
Но ни одна из этих попыток не обновила обе таблицы. Они только обновляют пользователя и пропускают местоположение. Насколько я знаю, вы можете сделать это таким образом с ассоциативным массивом, если массив содержит данные столбца в том же порядке таблицы, а Laravel сделает все остальное. Он работает только с обновлением пользовательской таблицы, но я хочу, чтобы он работал с двумя таблицами так, как он работает, используя функцию обновления объекта.
Таблицы MySQL
users:
id
firstname
middlename
lastname
active
email
password
phone
mobile_work
phone_work
gender
position_id
settling_id
location_id
locations:
id
street
house_number
addition
zipcode
city
province
country
public function update(Request $request, User $user, Location $location)
{
$attributes = request()->validate([
'firstname' => 'min:3|max:50',
'middlename' => 'max:50',
'lastname' => 'min:3|max:50',
'active' => 'required',
'email' => 'min:3|max:100',
'gender' => '',
'phone' => 'numeric|min:8',
'mobile_work' => 'numeric|min:8',
'phone_work' => 'numeric|min:8',
'position_id' => '',
'settling_id' => '',
'location_id' => '',
'street' => 'required|min:3',
'house_number' => 'required|numeric',
'addition' => '',
'zipcode' => 'required|min:6|max:7',
'city' => 'required|min:3',
'province' => 'required|min:3',
'country' => '',
]);
$user->update($attributes);
}
Если способ, которым я пытаюсь это сделать, невозможен, я хотел бы услышать, каков стандартный подход при обновлении двух таблиц в одной последовательности обновления.