Laravel raw custom query with pagination

Custom Query with pagination:

Controller:      

public function blogs_list()
{
$title=”List of blog post”;
$data = $this->paginateArray(
DB::select(“SELECT blogs.id,
blogs.title,
blogs.description,
blogs.created_at,
categories.id,
categories.category_name
FROM (categories categories
INNER JOIN post_category_map post_category_map
ON (categories.id = post_category_map.category_id))
RIGHT OUTER JOIN blogs blogs
ON (blogs.id = post_category_map.post_id)
WHERE (categories.id = 1)”));
return view(‘crud.blog_list’)->with(‘title’,$title)->with(‘blogposts’,$data);
}

public function paginateArray($data, $perPage = 5)
{
$page = Paginator::resolveCurrentPage();
$total = count($data);
$results = array_slice($data, ($page – 1) * $perPage, $perPage);
return new LengthAwarePaginator($results, $total, $perPage, $page, [
‘path’ => Paginator::resolveCurrentPath(),
]);
}

View:

<div class=”col-lg-12″>

@foreach($blogposts as $posts)
<div class=”panel panel-default” id=”content-formatting”>
<div class=”panel-heading”>{{ $posts->title }} ID: {{ $posts->id }}</div>
<div class=”panel-body”>
{{ $posts->description }}
<p class=”text-info”>Post Date: {{ $posts->created_at }}</p>
Category:

@foreach($posts->categorys as $category)
<span class=”label label-default”>{{ $category->category_name }} </span>&nbsp;
@endforeach
</div>
</div>
@endforeach

{{ $blogposts->links() }}

</div>