/**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $this->repository->addAvailableInclude('from_user', ['name', 'avatar']);
     $this->repository->addAvailableInclude('reply', ['created_at']);
     $this->repository->addAvailableInclude('topic', ['title']);
     $data = $this->repository->autoWith()->autoWithRootColumns(['id', 'type', 'body', 'topic_id', 'reply_id', 'created_at'])->paginate(per_page());
     return $this->response()->paginator($data, new NotificationTransformer());
 }
 /**
  * 所有帖子列表接口的通用部分.
  *
  * @return \Dingo\Api\Http\Response
  */
 protected function commonIndex()
 {
     FilterManager::addFilter('newest');
     $this->registerListApiIncludes();
     $data = $this->topics->autoWith()->autoWithRootColumns(['id', 'title', 'is_excellent', 'reply_count', 'updated_at', 'created_at', 'vote_count'])->paginate(per_page());
     return $this->response()->paginator($data, new TopicTransformer());
 }
示例#3
0
 /**
  * 通过 attentions 或 favorites 查找帖子.
  *
  * @param $table
  * @param $user_id
  * @param $columns
  *
  * @return Paginator
  */
 public function getTopicsWithPaginatorBy($table, $user_id, $columns = ['*'])
 {
     $paginator = DB::table($table)->orderBy('created_at', 'desc')->where(compact('user_id'))->paginate(per_page(), ['topic_id']);
     if ($paginator->count() === 0) {
         return $paginator;
     }
     $topic_ids = array_pluck($paginator->items(), 'topic_id');
     $topics = $this->whereInAndOrderBy($topic_ids)->autoWith()->autoWithRootColumns($columns)->get();
     $items = (new ReflectionObject($paginator))->getProperty('items');
     $items->setAccessible(true);
     $items->setValue($paginator, $topics);
     return $paginator;
 }
 /**
  * 获取指定用户的回复.
  *
  * @param $user_id
  *
  * @return \Dingo\Api\Http\Response
  */
 public function indexByUserId($user_id)
 {
     $this->replies->addAvailableInclude('user', ['name', 'avatar']);
     $data = $this->replies->byUserId($user_id)->skipPresenter()->autoWith()->autoWithRootColumns(['id', 'vote_count'])->paginate(per_page());
     return $this->response()->paginator($data, new ReplyTransformer());
 }
 /**
  * 所有帖子列表接口的通用部分.
  *
  * @return \Dingo\Api\Http\Response
  */
 protected function commonIndex()
 {
     $this->registerListApiIncludes();
     $data = $this->repository->autoWith()->skipPresenter()->autoWithRootColumns(['id', 'title', 'is_excellent', 'reply_count', 'updated_at', 'created_at'])->paginate(per_page());
     return $this->response()->paginator($data, new TopicTransformer());
 }