ตัว laravel จะไม่มี grid ติดตั้งมาให้ในตัวครับ ถ้าจะใช้ต้องลงเอง ผมเลือกใช้ คือ Nayjest Grids เพราะว่าใช้ bootstrapt เป็นพื้นฐานใช้งานง่าย ไม่ยากจนเกินไป สามารถส่งออกเป็นไฟล์ .csv และ excel ได้ ถึงจะไม่ได้เป็นแบบ ajax แต่เจ้าของโครงการก็ประกาศว่าจะทำ และดูจากการ update แล้วถือว่าถี่มากคงอีกไม่นานก็ได้ใช้
ติดตั้งโดย
- เปิดไฟล์ composer.json เพิ่ม
...
"laravelcollective/html": "^5",
"nayjest/grids": "^1.3.1"
...
- Command
composer update
- เปิดไฟล์ \config\app.php เพิ่ม
'providers' => [
...
'Collective\Html\HtmlServiceProvider',
'Nayjest\Grids\ServiceProvider',
...
'aliases' => [
...
'Form' => 'Collective\Html\FormFacade',
'Grids' => 'Nayjest\Grids\Grids',
'HTML' => 'Collective\Html\HtmlFacade',
'Input' => 'Illuminate\Support\Facades\Input',
...
]
สร้าง grid โดย
-
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Grids;
class UsersController extends Controller
{
public function index()
{
$grid = [
'src' => 'App\User',
'columns' => [
'id',
'name',
'email',
'created_at',
'updated_at',
],
];
echo Grids::make($grid);
}
}
- สร้าง route โดยไปที่ \app\Http\routes.php
...
Route::get('/users/index', 'UsersController@index');
...
ทดลองโดยเรียก /users/index ในเครื่องผมคือ http://localhost/laravel52/public/users/index grid แสดงข้อมูลออกมาแล้วแต่ จะส่งออกเป็นไฟล์ csv หรือ excel ยังไงละ ใจเย็นๆครับ อ่าน สร้าง grid ใน laravel แบบ advance ครับ