| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- namespace App\Http\Resources;
- use Illuminate\Http\Resources\Json\JsonResource;
- use App\Http\Api\UserApi;
- use App\Http\Api\MdRender;
- use App\Models\Collection;
- class ArticleMapResource extends JsonResource
- {
- /**
- * Transform the resource into an array.
- *
- * @param \Illuminate\Http\Request $request
- * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
- */
- public function toArray($request)
- {
- $data = [
- 'id' => $this->id,
- "collect_id" => $this->collect_id,
- "article_id" => $this->article_id,
- "level" => $this->level,
- "title" => $this->title,
- "editor" => UserApi::getById($this->editor_id),
- "children" => $this->children,
- 'status' => $this->status,
- "deleted_at" => $this->deleted_at,
- "created_at" => $this->created_at,
- "updated_at" => $this->updated_at,
- ];
- $channels = [];
- if ($request->has('channel')) {
- $channels = explode('_', $request->input('channel'));
- } else {
- $defaultChannel = Collection::where('uid', $this->collect_id)->value('default_channel');
- if ($defaultChannel) {
- $channels[] = $defaultChannel;
- }
- }
- $mdRender = new MdRender(['format' => 'simple']);
- $data['title_text'] = $mdRender->convert($this->title, $channels);
- if ($request->input('view') === 'article') {
- $collection = Collection::where('uid', $this->collect_id)->first();
- if ($collection) {
- $data['collection']['id'] = $collection->uid;
- $data['collection']['title'] = $collection->title;
- }
- }
- return $data;
- }
- }
|