Sleeping Owl Packet ที่ทำให้ ระบบจัดการเป็นเรื่องกล้วยๆ


Sourceและคู่มือ : http://packalyst.com/packages/package/acacha/admin

วันนี้จะมากล่าวถึงเรื่อง การทำระบบหลังบ้าน จากง่ายให้ง่ายขึ้นไปอีก ส่วนใหญ่พวกงานหลังบ้านก็คงหนีไม่พ้น เพิ่ม ลบ แก้ไข ข้อมูลใน Table ต่างๆ Sleeping Owl ได้ตระเตรียมเครื่องมือให้สร้างระบบหลังบ้านไว้เพียบ ไม่ว่าจะเป็น Generate Table แสดงข้อมูล ได้ในไม่กี่ บรรทัด หรือ Form เพิ่ม แก้ไข และ ปุ่มลบ ในไม่กี่บรรทัดเช่นกัน

สิ่งที่มากับ Packet :

sb-admin-2 template -- tempalte ของระบบ หลังบ้าน
jQuery 1.11.0 -- ก็ Jquery อ่ะ
Bootstrap v3.2.0 -- ก็ Boostrap อะ
Chosen v1.4.2 -- อันนี้มั่ว น่าจะเป็นตัว Select Box
DataTables 1.10.0-dev -- Jquery Plugin Datatables สำหรับสร้าง Tables และแบ่งหน้า Filter อื่นๆ อีกเยอะแยะ
Nestable jQuery Plugin -- ไม่รู้อะไร
Lightbox for Bootstrap 3 -- Modal ไงเธอ...
Font Awesome 4.1.0 -- Icon ต่างๆ
Metismenu 1.0.3 -- อะไรหว่า คงเป็น
morris.js v0.5.0 --
bootbox.js v4.3.0 -- 
Bootstrap datetimepicker -- datetime picker
CKEditor -- textarea แบบ จับว่าง
flow.js --
เริ่มจากติดตั้ง จาก Composer โดยการ เพิ่ม 

"sleeping-owl/admin": "dev-development"
ใน Composer.json จากนั้นสั่ง Update เพื่อดึง Packet เลย
composer update self (มั้ง ลองเซิจดูอีกทีละกัน)


หลังจาก Composer อัพเดทเสร็จก็ เปิดไฟล์ config/app.php ยัดไอ่นี้เข้าไป ใน aliases [... ];
'Admin'         => 'SleepingOwl\Admin\Admin',
'AdminAuth'     => 'SleepingOwl\AdminAuth\Facades\AdminAuth',
'Column'        => 'SleepingOwl\Admin\Columns\Column',
'ColumnFilter'  => 'SleepingOwl\Admin\ColumnFilters\ColumnFilter',
'Filter'        => 'SleepingOwl\Admin\Filter\Filter',
'AdminDisplay'  => 'SleepingOwl\Admin\Display\AdminDisplay',
'AdminForm'     => 'SleepingOwl\Admin\Form\AdminForm',
'AdminTemplate' => 'SleepingOwl\Admin\Templates\Facade\AdminTemplate',
'FormItem'      => 'SleepingOwl\Admin\FormItems\FormItem',


แล้วสั่ง
php artisan admin:install
บร๊ะ เสร็จแล้ว ลองเข้าดู
http://url.com/admin
ถ้าเจอหน้า Login แสดงว่าติดตั้งเสร็จสมบูรณ์ ไว้วันหลังจะมาต่อวิธีใช้
หลังจากติดตั้งเสร็จลองมาดูการใช้งานคร่าวกันนะครับ ไว้แบบละเอียดจะมาต่อภายหลัง
1. หลังการสร้าง Model ของ Table ของเราเสร็จ เราลองมาดูการสร้างหน้าจัดการ ของ Tables นั้นๆ แปปเดียวได้ทั้ง เพิ่ม ลบ แก้ไข




ใน Model user.php ต้องมี $fillable เพิ่มเข้าไป
protected $fillable = ['ชื่อฟิว', '...', '..'];
สมมุติมีตาราง Users และ Modelชื่อ User อยู่แล้ว ผมก็จะสร้างไฟล์มาตามนี้ app/admin/User.php : แล้วคำสั่งในไฟล์ก็ตามด้านล่างเลย
Admin::model('\App\Models\User')->title('จัดการผู้ใช้')->as('user_manage')
->columns(function(){
 Column::string('id', 'ID');
 Column::sex('sex','เพศ');
 Column::string('prename.pre_title', 'คำนำหน้า');
 Column::string('first_name', 'ชื่อ');
 Column::string('last_name', 'นามสกุล');
 Column::string('email', 'Email');
 Column::string('telephone', 'เบอร์โทรศัพท์');
 Column::string('created_at', 'วันที่สมัคร');
})
->form(function ()
{
 FormItem::select('sex', 'เพศ')->list([
  1 => 'ชาย', 
  2 => 'หญิง', 
 ])->required(false);
 FormItem::select('prenameId', 'คำนำหน้าชื่อ')->list(\App\Models\Prename::class)->attributes(['required' => 'true']);
 FormItem::Text('first_name', 'ชื่อ')->required()->attributes(['required' => 'true']);
 FormItem::Text('last_name', 'นามสกุล')->required()->attributes(['required' => 'true']);
 FormItem::Text('email', 'Email')->required()->attributes([
  'required' => 'true',
  'pattern' => '/[a-z0-9]*@[a-z]{2,3}\.[a-z]{2,3}/i'
 ]);
 FormItem::Text('telephone', 'เบอร์โทรศัพท์')->required()->attributes(['required' => 'true']);
 FormItem::Password('password', 'รหัสผ่าน')->required()->attributes(['required' => 'true']);
});
จากนั้นลองเข้า http://url.com/admin/user_manage แค่นี้ก็ได้ระบบจัดการ ง่ายๆ มาละ หนึ่งตาราง (ง่ายไปป่าว) O_o ไว้คราวหลังมาต่อนะครับ สงสัยอะไรสอบถามผ่าน Comment ได้เลยว่างจะมาช่วยหาคำตอบครับ

เอาคู่มือไปศึกษากันก่อนละกันครับ : http://sleeping-owl.github.io/

Related Posts