插入与USER相关的两个不同模型

时间:2019-01-31 08:47:59

标签: laravel eloquent

我有三种型号。 User ChatMessage 他们有各自的表格。

这是插入的正确方法吗?

我设法将数据插入到此嵌套关系中,但我认为这不好。

用户表

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 :(得分:0)

很抱歉我以前的回答。这是您可以用来代替更新模型并一一指定值的单一语句:

$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')]);

希望有帮助。