CommentTransformer.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Repositories\Transformers\Note;
  3. use Carbon\Carbon;
  4. use League\Fractal\TransformerAbstract;
  5. use App\Repositories\Models\Note\Comment;
  6. /**
  7. * Class CommentTransformer.
  8. *
  9. * @package namespace App\Repositories\Transformers\Note;
  10. */
  11. class CommentTransformer extends TransformerAbstract
  12. {
  13. /**
  14. * Transform the Comment entity.
  15. *
  16. * @param \App\Repositories\Models\Note\Comment $model
  17. *
  18. * @return array
  19. */
  20. public function transform(Comment $model)
  21. {
  22. return [
  23. 'id' => (int)$model->id,
  24. "body" => $model->body,
  25. "note_id" => $model->note_id,
  26. "comment_count" => $model->comment_count,
  27. "good_count" => $model->good_count,
  28. "user_id" => $model->user_id,
  29. "user" => $model->user,
  30. 'is_answer' => $model->is_answer,
  31. "comments" => Comment::query()->where('parent_id', $model->id)->with(['user'])->orderByDesc('id')->get(),
  32. 'created_at' => $model->created_at->format(Carbon::DEFAULT_TO_STRING_FORMAT),
  33. 'updated_at' => $model->updated_at->format(Carbon::DEFAULT_TO_STRING_FORMAT)
  34. ];
  35. }
  36. }