Вставка в две разные модели, связанные с пользователем - PullRequest
0 голосов
/ 31 января 2019

У меня три модели.User Chat и Message У них есть соответствующие таблицы.

Это правильный способ вставки?

Мне удалось вставить данные в эти вложенные отношения, но я не знаюне думаю, что это хорошо.

таблица пользователя

id|name|email|other fields

таблица чата

id|user_id|receiver_id

таблица сообщений

id|chat_id|message|created_at|updated_at|

user one to many relationship to chat

chat one to many relationship to message

        $chat = new Chat;
        $message = new Message;

        $chat->receiver_id = request('receiver_id');
        $message->message = request('message');

        $user->chats()->save($chat);
        $chat->messages()->save($message);

Я предполагаю, что данные будут сохранены более чистым способом.

1 Ответ

0 голосов
/ 31 января 2019

Извините за мой предыдущий ответ.Вот единственное утверждение, которое вы можете использовать вместо обновления моделей и присвоения значений одно за другим:

$user->chats()->save(new Chat(['receiver_id' => request('receiver_id')]))
     ->messages()->save(new Message(['message' => request('message')]));

С помощью метода create() вы можете упростить дальнейшее:

$user->chats()->create(['receiver_id' => request('receiver_id')])
     ->messages()->create(['message' => request('message')]);

Надеюсь, это поможет.

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