Memo cách lấy và chuyển dữ liệu từ database bằng Laravel Eloquent từ dạng object sang array.
Laravel Eloquent: Lấy dữ liệu dưới dạng object
Chúng ta có thể lấy dữ liệu từ database dưới dạng object bằng cách viết lệnh sql và sau đó chạy nó như sau:
use Illuminate\Support\Facades\DB;
//...
$str_sql = "SELECT *". " FROM at_time_records ".
" WHERE at_time_records.user_id = ".$user_id.
" AND at_time_records.date = '".$date."'".
" ORDER BY at_time_records.record_type_id";
$result =DB::select(DB::raw($str_sql));
Kết quả thu được sẽ dưới dạng một mảng object:
array (
0 =>
(object) array(
'id' => 1,
'user_id' => 1,
'record_type_id' => 1,
'date' => '2022-05-09',
'created_at' => '2022-05-10 20:45:14',
),
1 =>
(object) array(
'id' => 2,
'user_id' => 1,
'record_type_id' => 2,
'date' => '2022-05-09',
'created_at' => '2022-05-10 20:45:26',
),
)
Laravel Eloquent: Chuyển dữ liệu từ dạng object sang array
Sau khi lấy dữ liệu dưới dạng object, hãy dùng kết hợp json_decode
và json_encode
để chuyển object này sang dạng array như sau:
$result =DB::select(DB::raw($str_sql));
$result = json_decode(json_encode($result), true);
Khi đó mảng object sẽ chuyển thành array như sau:
array (
0 =>
array (
'id' => 1,
'user_id' => 1,
'record_type_id' => 1,
'date' => '2022-05-09',
'created_at' => '2022-05-10 20:45:14',
),
1 =>
array (
'id' => 2,
'user_id' => 1,
'record_type_id' => 2,
'date' => '2022-05-09',
'created_at' => '2022-05-10 20:45:26',
),
)
Tổng kết
Oke thế là xong một mẹo nhỏ giúp bạn lấy và chuyển dữ liệu từ object sang array với Laravel Eloquent.
Bình luận