ddimonn8080
@ddimonn8080

Как получить id только что сохраненного комментария?

Здравствуйте. Сайт на laravel и в контроллере сохраняю комментарий. Потом сразу отправляю ответ в виде информации о только что сделанном комментарии. При сохранении id комментария генерируется автоматически. Autoincrement. Корректно ли получить этот id по полю created_at или updated_at?
public function store(Request $request)
    {
        $current_time = Carbon::now()->toDateTimeString();

        $new_comment = [
            'product_slug' => $request->get('productSlug'),
            'product_id' => $request->get('productID'),
            'user_id' => $request->get('userID'),
            'content' => $request->get('content'),
            'created_at' => $current_time,
            'updated_at' => $current_time,
            'user_name' => $request->get('userName'),
            'user_email' => $request->get('userEmail'),
        ];

        $comment = new ProductComments($new_comment);
        $saved = $comment->save();

        if ($saved) {
            $comment_id = DB::table('product_comments')
                ->where('product_slug', $request->get('productSlug'))
                ->where('updated_at', $current_time)
                ->select('id')
                ->first();

            //id: 7, user_id: 11, content: "Message content", updated_at: "2019-04-12 19:23:11", user_name: "Guest"
            return response()->json([
                'id' => $comment_id->id,
                'user_id' => $request->get('userID'),
                'content' => $request->get('content'),
                'updated_at' => $current_time,
                'user_name' => $request->get('userName'),
            ]);
        } else {
            return 'Произошла ошибка при сохранении комментария. Попробуйте ещё раз.';
        }

    }
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
Корректно - получать его через last insert id. Вот примеры употребления в Laravel: https://laravelcode.com/post/laravel-55-get-last-i...
В случае с Eloquent - ничего руками делать не надо, он сам в методе save подставляет в поле id последний вставленный id'шник, достаточно после этого просто прочитать его в $comment->id или вообще не читать, если с ним отдельно ничего делать не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы