Laravel Pagination

Membagi halaman data hasil query dengan pagination di laravel, awalnya memang membingungkan, namun setelah di pelajari dan mengerti tehniknya hasilnya sama saja tetap pagination seperti yang lain. Bagaimana cara membuat pagination di laravel berikut penjelasan singkatnya.

Pada controller nya buat script seperti pada contoh berikut.

    public function index(Request $request)
    {
        $news = DB::table('news')->Paginate(5);
        
        return view('news/index', compact("news"));
    }

Paginate(5) maksudnya adalah setiap halaman menampilkan 5 data/baris. Pada bagian view nya scriptnya adalah berikut.

              <table class="table table-bordered table-head-fixed text-nowrap">
                <thead>
                  <tr>
                    <th style="width: 10px">#</th>
                    <th>Judul</th>
                  </tr>
                </thead>
                <tbody>
                  @if(count($news) > 0)
                    @foreach($news as $key => $row)
                    <tr>
                      <td>{{ (($news->currentPage() * $news->perPage()) - $news->perPage()) + $key + 1 }}</td>
                      <td>{{ $row->news) }}</td>
                    </tr>
                    @endforeach
                  @endif
                </tbody>
              </table>
              @if(count($news) > 0)
                    {!! $news->render() !!}
              @endif

Untuk kombinasi dengan query string di url pada bagian {!! $lowongan->render() !!} ganti dengan kode berikut.

{{ $news->appends(request()->query())->links() }}

hasil contoh url http://localhost/news?q=endang-cahya-permana&page=2.

atau untuk seting parameter secara manual

<?php $params = array('q' => 'endang-cahya-permana') ?>
<?php echo $news->appends($params)->links() ?>

Semoga bermanfaat, wassalam.

Laravel Koneksi Database MySQL .env

Menghubungkan laravel dengan database MySQL, caranya yaitu dengan melakukan konfigurasi di file .env yang terdapat pada root directory project. lakukan perubahan pada bagian settingan koneksi mysql seperti host, database, user dan passwordnya.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=

Laravel Error Access denied for user ‘homestead’@’localhost’ (using password: YES)

Solusi masalah muncul pesan error Access denied for user ‘homestead’@’localhost’ (using password: YES) adalah dengan memastikan konfigurasi koneksi dengan database mysql diisi dengan benar di file .env pada root dir, jika sudah benar maka lakukan perintah berikut di cmd.

php artisan config:clear

perintah diatas untuk menghapus cache lama, dan membaca setingan baru. Kemudian coba jalankan perintah dibawah untuk menjalankan ulang laravel project.

php artisan serve

Laravel Panggil View di Controller

Di file controller DashboardController.php, tulis kode script “return view(‘dashboard’);” untuk pemanggilan view dashboard.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DashboardController extends Controller
{
    public function index()
    {
        return view('dashboard');
    }
}

Untuk file dashboard seperti biasa disimpan dengan nama dashboard.blade.php. untuk isi kode html sesuai dengan kebutuhan.

Laravel Membuat Controller

Membuat controller di laravel bisa menggunakan perintah di command line. caranya adalah buka command line, lalu masuk ke folder project di htdocs (misal c:\xampp\htdocs\testLaravel) kemudian masukan perintah.

php artisan make:controller DashboardController

Jika muncul pesan “Controller created successfully”, maka controller berhasil di buat.

c:\xampp\htdocs\testLaravel\app\Http\Controllers

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DashboardController extends Controller
{
    public function index()
    {
        echo "Hello world";
    }
}

Tambahkan function index di controller seperti code diatas.

Untuk pemanggilan di routes tambahkan kode berikut.

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('index');
});

Route::get('/dashboard', 'DashboardController@index')->name('dashboard');

Hasilnya adalah seperti pada gambar dibawah.

Laravel Menghubungkan Dengan Asset CSS dan JS

Setelah File CSS atau JS dan asset lainnya di simpan di folder public, sekarang bagaimana cara pemanggilan di halaman view htmlnya, berikut adalah contoh script pemanggilannya.

<link rel="stylesheet" type="text/css" href="/css/style.css">

atau

<link rel="stylesheet" type="text/css" href="{{ asset('/css/style.css') }}">

untuk js dan image sama cara penulisan pemanggilan filenya.

Laravel Templating (Adminlte)

Folder yang dibutuhkan untuk templating di laravel yaitu build, dist, dan plugins yang ada pada master source adminlte setelah di download dan di extract.

Jika sudah di pilih copy dan pastekan di folder laravel pada lokasi direktory public. pada kasus ini saya masukan ke folder adminlte yang saya buat di dalam directory public.

Buat view, namun sebelumnya di dalam directory view buat folder layouts. lalu buat file admin.blade.php. (\resources\views\layouts\admin.blade.php).

Isi file tersebut dengan script sama dengan file index.html yang terdapat di dalam folder adminlte melalui copy paste.

Setelah itu ubah path source css, js dan imagesnya, caranya seperti pada postingan pada url dibawah.

https://endangcahyapermana.wordpress.com/2020/06/10/laravel-menghubungkan-dengan-css-dan-js-asset/

admin.blade.php sebagai main layout. Cuplikan script seperti berikut.

  <!-- header //-->

  @yield('content');
  
  <!-- footer //-->
  
  <!-- Control Sidebar -->
  <aside class="control-sidebar control-sidebar-dark">
    <!-- Control sidebar content goes here -->
  </aside>
  <!-- /.control-sidebar -->

  <!-- Main Footer -->
  <footer class="main-footer">
    <strong>Copyright &copy; 2014-2019 <a href="http://adminlte.io">AdminLTE.io</a>.</strong>
    All rights reserved.
    <div class="float-right d-none d-sm-inline-block">
      <b>Version</b> 3.0.5
    </div>
  </footer>

@yield(‘content’) adalah bagian yang akan diisi oleh konten yang berganti-ganti. beda halnya dengan header, sidebar dan footer.

Untuk pemanggilan konten di view contoh script adalah sebagai berikut.

@extends('layouts.admin')  

@section('content')
  <!-- .content-wrapper -->
  Isi tag html konten
  <!-- /.content-wrapper -->
@endsection