本文整理汇总了PHP中app\models\Project::paginate方法的典型用法代码示例。如果您正苦于以下问题:PHP Project::paginate方法的具体用法?PHP Project::paginate怎么用?PHP Project::paginate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\models\Project
的用法示例。
在下文中一共展示了Project::paginate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index
/**
* Return a paginated list of projects
*
* @return \Dingo\Api\Http\Response
*/
public function index()
{
$projects = Project::paginate(app('request')->get('per_page', 10));
$queryParams = array_diff_key($_GET, array_flip(['page']));
$projects->appends($queryParams);
return $this->response->paginator($projects, new ProjectTransformer());
}
示例2: projects
public function projects($search = null, $categories = null, $orderby = null, $paginate = true)
{
$result = null;
/**
* As buscas não são complementares: ou se filtra por termo ou por categoria(s)
* mas nunca por ambos.
*/
if ($paginate) {
/**
* SEARCH
* Se existe um termo de busca, retorna a lista filtrada pelo termo
*/
if (!is_null($search) && !empty($search)) {
return Project::where('name', 'like', "%{$search}%")->paginate(env('PAGINATION_ITEMS', 10));
}
/**
* CATEGORIES
* Se existe uma ou mais categoria(s), retorna a lista filtrada por ela(s)
*/
if (!is_null($categories) && !empty($categories)) {
/**
* Compila-se uma lista distinta projetos associados às caregorias informadas
*/
$projectsFromCategories = DB::table('category_project')->whereIn('category_id', $categories)->distinct()->get(['project_id']);
$projectIds = [];
/**
* Compila-se uma lista apenas com os IDs dos projetos pois
* a lista acima possui array com objetos: [0 => StdClass('project_id': 1)]
*/
foreach ($projectsFromCategories as $value) {
$projectIds[] = $value->project_id;
}
/**
* Por fim retorna-se a lista dos projetos
*/
return Project::whereIn('id', $projectIds)->paginate(env('PAGINATION_ITEMS', 10));
}
/**
* ORDER BY
* Se existe ordenação, retorna a lista ordenada pela instrução recebida
*/
if (!is_null($orderby) && !empty($orderby)) {
$order = explode('|', $orderby);
return Project::orderBy($order[0], $order[1])->paginate(env('PAGINATION_ITEMS', 10));
}
/**
* Caso nem exista nem termo de busca nem categorias, retorna-se a lista completa, paginada.
*/
return Project::paginate(env('PAGINATION_ITEMS', 10));
}
/**
* Este, sem paginação, visa atender à API
*/
return Project::where('name', 'like', "%{$search}%")->get();
}