// post model method
/**
* getLivePosts ()
* -------------------------------------------------------------------
*
*/
public function getLivePosts() : PostModel
{
$builder = $this->builder();
$builder->where('status', 'published')
->orderBy('created_at', 'desc');
// for method chaining
return $this;
}
// Blog Controller
/**
* -------------------------------------------------------------------
* posts ()
* -------------------------------------------------------------------
*
*/
public function posts()
{
$pager = Services::pager();
$posts = new PostModel($this->request);
$categories = new CategoryModel();
$data = [
"featured" => $posts->getFeaturedPost(),
'posts' => $posts->getLivePosts()->paginate(4, 'group1'),
'pager' => $posts->pager,
'currentPage' => $posts->pager->getCurrentPage('group1'),
'totalPages' => $posts->pager->getPageCount('group1'),
'categories' => $categories->getTopCategories(),
'title' => 'Blog Home',
'pageHeading' => 'Welcome to our Blog!',
'subHeading' => '',
'typography' => Services::typography(),
];
echo view('Insitefx\Blog\Views\posts\index');
}
Notic the model returning $this for method chaining.