- vừa được xem lúc

Laravel-admin: Xây dựng trang quản trị trong 1 nốt nhạc - Phần 1 CRUD

0 0 237

Người đăng: Thanh Sang Cao

Theo Viblo Asia

Giới thiệu

Một trang quản trị trực quan là điều không thể thiếu trong quá trình xây dựng hệ thống website. Bạn còn đang loay hoay chưa biết xây dựng nó như thế nào cho nhanh và hiệu quả? Hôm nay, mình sẽ giới thiệu với bạn package Laravel-admin vô cùng mạnh mẽ. Với package này, bạn chỉ cần viết code Backend mà không cần động vào 1 dòng code HTML, CSS nào cả mà nó có UI rất gọn gàng, đẹp mắt. Tiết kiệm thời gian phát triển chưa nào? Không cần phải dài dòng nữa, cùng tìm hiểu thôi nào. Let's go!!!! ?

1. Install

Laravel-admin yêu cầu bạn sử dụng PHP 7+ và Laravel 5.5+. Hãy chắc chắn rằng bạn đã cài đặt Laravel project và kết nối database thành công. Sau đó sử dụng câu lệnh để cài đặt package:

composer require encore/laravel-admin

Tiếp theo publish các file cần thiết:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

Sau khi chạy lệnh, bạn có thể tìm thấy tệp cấu hình config/admin.php, trong tệp này, bạn có thể thay đổi thư mục cài đặt, kết nối database hoặc tên bảng.

Cuối cùng chạy lệnh sau để kết thúc cài đặt.

php artisan admin:install

Mở trình duyệt http://localhost/admin/, để đăng nhập bạn hãy sử dụng tài khoản mặc định username: admin, password: admin.

Trang Dashboard:

Trang quản lý User:

Sau khi cài đặt, bạn có thể tìm thấy thư mục app/Admin, và hầu hết các công việc phát triển của chúng ta đều nằm trong thư mục này.

app/Admin
├── Controllers
│ ├── AuthController.php
│ ├── ExampleController.php
│ └── HomeController.php
├── bootstrap.php
└── routes.php
  • app/Admin/routes.php được sử dụng để xác định route.
  • app/Admin/bootstrap.php là bootstrapper cho laravel-admin.
  • Thư mục app/Admin/Controllers được sử dụng để lưu trữ tất cả các Controller, ExampleController.php là một ví dụ về Controller có sẵn. Bạn có thể tùy chỉnh việc xác thực bằng cách viết đè các function trong AuthController.php

2. CRUD

Mình sẽ demo ứng dụng CRUD sử dụng Laravel-admin để các bạn có thể dễ dàng áp dụng vào project của mình.

Chúng ta dùng luôn model User để demo.

users id - integer name - string email - string password - string created_at - timestamp updated_at - timestamp
  1. Thêm Controller

Sử dụng lệnh sau để tạo Controller cho App\User

php artisan admin:controller App\\Models\\User

File controller sẽ được sinh ra trong app/Admin/Controllers/UserController.php

  1. Thêm route

Chúng ta phải khai báo route mới trong app/Admin/routes.php

$router->resource('demo/users', UserController::class);
  1. Thêm Menu item

Bạn có thể thêm item trên menu bằng cách truy cập trực tiếp vào ứng dụng http://localhost:8000/admin/auth/menu.

Chỉ cần nhập URI demo/users là có đường dẫn đầy đủ http://localhost:8000/admin/demo/users. Còn bạn muốn tạo đường dẫn bên ngoài thì phải nhập đầy đủ url https://viblo.asia/followings là ngon nha.

  1. Chỉnh sửa logic trong Controller

UserController được tạo bằng lệnh nó sẽ như thế này:

<?php namespace App\Admin\Controllers; use App\Models\User;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show; class UserController extends AdminController
{ protected $title ='Users'; protected function grid() { $grid = new Grid(new User()); $grid->column('id', __('Id')); $grid->column('name', __('Name')); $grid->column('email', __('Email')); $grid->column('password', __('Password')); $grid->column('created_at', __('Created at')); $grid->column('updated_at', __('Updated at')); return $grid; } protected function detail($id) { $show = new Show(User::findOrFail($id)); $show->field('id', __('Id')); $show->field('name', __('Name')); $show->field('email', __('Email')); $show->field('password', __('Password')); $show->field('created_at', __('Created at')); $show->field('updated_at', __('Updated at')); return $show; } protected function form() { $form = new Form(new User()); $form->textarea('name', __('Name')); $form->textarea('email', __('Email')); $form->textarea('password', __('Password')); return $form; }
}

Wow!!! Chỉ bằng 1 câu lệnh mà đẩy đủ chức năng CRUD luôn. Giải thích tý nha:

  • Thuộc tính $title được sử dụng để đặt tiêu đề cho module CRUD này

  • Method grid tương ứng với trang index danh sách của dữ liệu. Mỗi cột trong bảng dữ liệu muốn hiển thị thì sử dụng $grid->column(column_name, 'Column Title')

  • Method detail tương ứng với trang show chi tiết của dữ liệu.

  • Method form tương ứng với trang create và edit của dữ liệu.

Bạn có thể thấy dù không code một dòng HTML, CSS nào nhưng kết quả thật vi diệu.

Tạm kết

Ở phần 1 này, mình đã giới thiệu cơ bản về sức mạnh của package Laravel-admin. Thật sự nó giúp mình tiết kiệm thời gian phát triển trang quản trị. Hơn hết, chúng ta có thể tùy chỉnh với các chức năng nâng cao và các gói mở rộng của package này mà mình sẽ trình bày ở các phần tiếp theo.

Hy vọng bài viết sẽ giúp ích cho các bạn trong quá trình học tập và làm việc. Cảm ơn bạn đã đọc bài ❤️

Nguồn:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 358

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 449

- vừa được xem lúc

Sử dụng Swagger để xây dựng API documentation

Giới thiệu về Swagger. RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource.

0 0 1k

- vừa được xem lúc

Ví dụ CRUD với Laravel và Vuejs.

1. Cài đặt Laravel. composer create-project --prefer-dist laravel/laravel vuelaravelcrud. .

0 0 160

- vừa được xem lúc

Một số tips khi dùng laravel (Part 1)

1. Show database query in raw SQL format. DB::enableQueryLog(); // Bật tính năng query logging. DB::table('users')->get(); // Chạy truy vấn bạn muốn ghi log.

0 0 84

- vừa được xem lúc

Inertiajs - Xây dựng Single Page App không cần API

Tiêu đề là mình lấy từ trang chủ của https://inertiajs.com/ chứ không phải mình tự nghĩ ra đâu nhé :v. Lâu lâu rồi chưa động tới Laravel (dự án cuối cùng mình code là ở ver 5.8), thế nên một ngày đẹp trời lượn vào đọc docs ver 8.

0 0 242