MessageListTransformer.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/6/6
  6. * Time: 14:08
  7. */
  8. namespace App\Transformers\Circle;
  9. use App\Models\InterestCircle;
  10. use App\Models\InterestCircleMessage;
  11. use App\Models\Post;
  12. use App\Traits\PostTrait;
  13. use App\Traits\UserTrait;
  14. use Illuminate\Support\Carbon;
  15. use League\Fractal\TransformerAbstract;
  16. class MessageListTransformer extends TransformerAbstract
  17. {
  18. use UserTrait;
  19. public function transform(InterestCircleMessage $interestCircleMessage)
  20. {
  21. $user = $this->getShortUserInfo($interestCircleMessage['uid']);
  22. return [
  23. 'id' => $interestCircleMessage['id'],
  24. 'created_at' => Carbon::parse($interestCircleMessage['created_at'])->toDateTimeString(),
  25. 'user' => $user ? $user : new \stdClass(),
  26. 'circle' => $this->getCircleInfo($interestCircleMessage['circle_id']),
  27. 'good' => $interestCircleMessage['good'],
  28. 'bad' => $interestCircleMessage['bad'],
  29. 'comment_count' => $interestCircleMessage['comment_count'],
  30. 'is_recommend' => $interestCircleMessage['is_recommend'],
  31. ];
  32. }
  33. public function getCircleInfo($circleId)
  34. {
  35. $info = InterestCircle::find($circleId);
  36. $circle['id'] = $info->id;
  37. $circle['name'] = $info->name;
  38. return $circle;
  39. }
  40. }