Bài đăng

Hiển thị các bài đăng có nhãn Laravel

Hàm "tap" trong Laravel Collection

Giới thiệu hàm "tap" Tap vs Pipe Tham khảo Giới thiệu hàm "tap" Laravel 5.4.10 giới thiệu một method mới tên tap cho phép ta "khẽ chạm" (tap) vào collection tại một điểm xác định và thao tác với kết quả trả về từ tap mà không ảnh hưởng gì tới collection gốc. Đó là lý do hàm có tên tap - chỉ chạm nhẹ thôi mà không làm gì khác :D. Tính năng này sẽ được mô tả bằng ví dụ bên dưới giúp bạn hiểu thêm. 'David Charleston', 'member' => 1, 'active' => 1], ['name' => 'Blain Charleston', 'member' => 0, 'active' => 0], ['name' => 'Megan Tarash', 'member' => 1, 'active' => 1], ['name' => 'Jonathan Phaedrus', 'member' => 1, 'active' => 1], ['name' => 'Paul Jackson', 'member' => 0, 'active' => 1] ]; Chúng ta sẽ chuyển đổi mảng trên thành collection r

Ghi lại câu truy vấn Database trong Laravel

Hình ảnh
Logging query trong Laravel Để biết ứng dụng thực hiện câu truy vấn nào tới Database ta có thể log lại câu truy vấn đó khi nó được thực thi. Mục đích Mục đich chính của việc này là ta có thể theo dõi các câu truy vấn được executed trong việc debug và tuning/optimze câu truy vấn. Thực hiện Để log các query được thực thi ta chỉ cần bắt sự kiện khi ứng dụng execute query. Ta có thể hiện bằng cách truyền vào một hàm ẩn danh khi gọi đến method listen của class DB . Đoạn code cần được đặt trong method boot của AppServiceProvider hoặc của một service provide riêng tự tạo. <?php namespace App\Providers; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { DB::listen(function ($q) { Log::info('TIME: ' . $q->time . '

Sử dụng Transformers trong Laravel

Khi tạo REST API ta thường trả về dữ liệu dưới dạng JSON. Trong Laravel ta có nhiều cách để trả về  JSON. How We Usually Do It Thông thường, khi chúng ta tạo ra một JSON Response trong Laravel, chúng ta sẽ sử dụng Model. class User { protected $fillable = [ 'name', 'email', 'address', ]; protected $hidden = [ 'password', 'remember_token', ]; } Giả sử chúng ta muốn lấy User đầu tiên dạng JSON, thì có lẽ chúng ta sẽ sử dụng một cách nào đó như sau. $user = User::find(1); return $user; Boom! Bạn nhận JSON response của user đầu đã đăng ký. Nhưng nếu Model thay đổi trong tương lai (ví dụ: đổi address thành user_address) => JSON response cũng thay đổi. Các bên sử dụng API của bạn cũng phải thay đổi theo. Do vậy ta cần một cách khác phù hợp hơn, câu trả lời đó là dùng Transformer. Transformers Về cơ bản transformers cho bạn tạo định JSON response một cách linh động. Ngoài ra t