Laravel обновит статус в таблице других внешних ключей

#laravel #eloquent

Вопрос:

У меня есть три таблицы (пользователи, table_1, table_2) и внешние ключи таблиц пользователей в таблицах table_1 и table_2.

Пользователи

 id
name
email
status (1/0)
created_at
updated_at
 

Таблица 1

 id
message
status (1/0)
user_id (FK of users)
created_at
updated_at
 

Таблица 2

 id
about
status (1/0)
user_id (FK of users)
created_at
updated_at
 

Примечание: Для объяснения я использовал название таблицы 1,2.

Теперь я обновляю статус пользовательской таблицы и то же обновление статуса в table_1 и table_2, где внешний ключ совпадает.

Здесь я написал индивидуальный запрос для каждой таблицы:

 $users = Users::where('id', $id)->update([
    'status' => $status
]);

Table1::where('user_id', $id)->update([
    'status' => $status
]);

Table2::where('user_id', $id)->update([
    'status' => $status
]);
 

Итак, есть ли какой-либо способ уменьшить запрос с помощью красноречивых отношений?

Комментарии:

1. Ты хочешь чего-то подобного ? $user = Users::find($id); $user->status = $status; $user->table1->status = $status; $user->table1->status = $status; $user->save();

2. @Фатимамажит Да. Спасибо. Я попробую это сделать.

3. Почему вы сохраняете один и тот же статус в разных таблицах. В идеале вы должны сохранять его только в таблице пользователей, и если у вас есть правильные отношения с таблицей_1 и таблицей_2, вы можете получить к ним доступ как — table_1->пользователь->>статус или table_2->>>пользователь->>>статус

4. Он разработан другими разработчиками.

5. Если вы используете mysql и не хотите выполнять эти операции с помощью laravel, вы можете создать триггер.