Beispiel #1
0
 /**
  * Retrieve pagination
  * 
  * @param  integer $page
  * @param  integer $start
  * @param  string  $search
  * @return array
  */
 public function get($page, $search = '', $visibility = null, $ownership = null)
 {
     $this->model = $this->setupQuery($this->model);
     $userId = $this->auth->user()->id;
     $perPage = config('inoplate.media.library.per_page', 10);
     if ($search) {
         $this->model = $this->model->where(function ($query) use($search) {
             $query->where('title', 'like', "%{$search}%")->orWhere('name', 'like', "%{$search}%");
         });
     }
     if ($ownership == 1) {
         $this->model = $this->model->where('user_id', $userId);
     } elseif ($ownership == 2) {
         $this->model = $this->model->where('user_id', '!=', $userId)->whereHas('users', function ($query) use($userId) {
             $query->where('user_id', $userId);
         });
     }
     if ($visibility) {
         $this->model = $this->model->where('visibility', $visibility);
     }
     $eloquentLibraries = $this->model->skip(($page - 1) * $perPage)->take($perPage)->orderBy('created_at', 'desc')->get();
     $libraries = [];
     foreach ($eloquentLibraries as $library) {
         $libraries[] = $this->toDomainModel($library);
     }
     return $libraries;
 }