Công cụ tinker vô cùng hữu ích của Laravel
Nguồn ảnh: topdev
Contents
1. Giới thiệu
Trong bài viết này, tôi xin giới thiệu với tất cả bạn đọc một tính năng ít đươc biết đến của Laravel, tính năng này giúp bạn nhanh chóng đọc được dữ liệu ngay bên trong project của mình. Đó là Tinker của Laravel, để sử dụng được Tinker chạy lệnh:
php artisan tinker
Tinker của Laravel artisan là một repl (read-eval-print loop)
Ví dụ, tôi có một vài câu lệnh xử lý với Database như sau:
// see the count of all users App\User::count(); // find a specific user and see their attributes App\User::where('username', 'samuel')->first(); // find the relationships of a user $user = App\User::with('posts')->first(); $user->posts;
Muốn xem được kết quả của những câu truy vấn trên, nhanh nhất chúng ta cũng cần tới vài thao tác xử lý. Tạo Controller, routes, Model, …v.v. Tuy nhiên với php artisan tinker chúng ta có thể xem được kết quả đầu ra vô cùng nhanh chóng. Tinker cho phép chúng ta tương tác trực tiếp với ứng dụng của mình thông qua các lệnh như stop() hay dd() thậm chí là cả print_r().
2. Hướng dẫn sử dụng
Từ thư mục root của project, chạy lệnh:
php artisan tinker
Lệnh này sẽ mở lên một relp, với relp vừa được hiển thị, chúng ta có thể chạy model factory và tiến hành seed database tại đó với lệnh:
factory(App\User::class, 10)->create();
Sau khi chạy xong lệnh trên trong relp, để chắc chắn là câu lệnh đã được thực thi, hãy vào datatabase và kiểm tra lại. Nếu có user mới được sinh ra tức là câu lệnh đã chạy đúng. Một collection của 10 user sẽ hiển thị bên trên màn hình nếu bạn gõ lệnh.
App\User::all();
Nếu muốn đếm tổng số lượng bản ghi có trong bản users, chạy lệnh:
App\User::count();
Sau khi chạy hai câu lệnh trên, relp sẽ hiển thị như sau:
Nguồn: https://viblo.asia/p/laravel-tinker-AoDKYNQDzvg
3. Thoát chế đồ tinker
Sử dụng lệnh quit nhé!
>>> quit
4. Một số lưu ý và lệnh
4.1 Viết code xuống dòng để tinker vẫn hiểu
- Thêm \ cuối dòng
- Thêm … đầu dòng
>>> function sayHello($userId) { \ ... $user = App\Models\User::find($userId); \ ... return "Hello {$user->username}-san";}
4.2 Xem lỗi ( stacktrace ) – giống xem log
>>> wtf
4.3 Up/down mode maintainance
// maintainance >>> down // go live >>> up
Kết Luận
Công cụ này thật hữu ích phải không các bạn. Cảm ơn các bạn đã đọc bài viết. Nếu có thắc mắc gì cứ để lại bình luận bên dưới nhé.