Listing images
In this section, we are going to create an 'all images'
section in our system, which will have a page navigation (pagination) system. There are a few steps to be followed as shown:
- First, we need to define its URL from our
route.php
file. For this, openapp/http/routes.php
and add the following lines://This route is to show all images. Route::get('all',array('as'=>'all_images','uses'=>'[email protected]'));
- Now, we need a method named
getAll()
(there is aget
method at the start because it will be a RESTful controller) to get values and load the view. To do this, open yourapp/controllers/imageController.php
and add these codes before the last curly bracket (}):public function getAll(){ //Let's first take all images with a pagination feature $all_images = DB::table('images')->orderBy('id','desc')->paginate(6); //Then let's load the view with found data and pass thevariable to the view return View::make('tpl.all_images')->with('images',$all_images); }
Here, we first got all the images from the database using the
paginate()
method, which will allow us to get the pagination links easily. After that, we loaded the view for the user with the images data with pagination. - To view this properly, we need a view file. Save the following code in a file named
all_image.blade.php
in the resources/views/tpl/
directory:@extends('frontend_master') @section('content') @if(count($images)) <ul> @foreach($images as $each) <li> <a href="{{URL::to('snatch/'$each->id)}}">{{HTML::image(Config::get('image.thumb_folder')'/'.$each->image)}}</a> </li> @endforeach </ul> <p>{{$images->links()}}</p> @else {{--If no images are found on the database, we will showa no image found error message--}} <p>No images uploaded yet, {{HTML::link('/','care to upload one?')}}</p> @endif @stop
We first extend the
frontend_master.blade.php
file with our content section. As for the content section, we first check whether any rows are returned. If so, then we loop them all in list item tags (<li>
) with their permalinks. Thelinks()
method that came with thepaginate
class will create the pagination for us.Note
You can switch the pagination template from
config/view.php
.If no rows have returned, that means there are no images (yet), so we show a warning message with a link to the new upload page (which is the index page in our case).
What if a person uploads an image that is not allowed or not safe for work? You would not like to have them on your website, right? So there should be an image deleting feature on your website.
Comments