Tôi đã làm việc với tài hùng biện của Laravel 5.4 và tôi đã gặp phải sự cố.Tìm kiếm trong cột JSON bằng cách sử dụng eloquent của Laravel
Tôi có bảng cơ sở dữ liệu được gọi là bài đăng và trong đó, cột có tên là template_ids
. Nó lưu trữ các giá trị trong định dạng json_encoded
như:
["1","25","48"]
Bây giờ, tôi muốn áp dụng một bộ lọc để truy vấn của tôi dựa trên một loạt các ID:
$id_access = array:3 [
0 => "1"
1 => "3"
2 => "48"
]
Những gì tôi đang cố gắng làm là để tìm kiếm nếu có bất kỳ giá trị $id_access
nào có trong cột cơ sở dữ liệu, template_ids
.
tôi đã cố gắng:
Post::where('accessable_to',1)->whereIn('template_ids', $template_access_array)->paginate(3);
Ngoài ra, tôi đã cố gắng:
Post::where('accessable_to',1)->whereRaw("JSON_CONTAINS(template_ids, ".$template_access.")")->paginate(3);
Đã xem this, nhưng nó không làm việc cho tôi.
Có thể này https://stackoverflow.com/questions/41942374/json-search-in-laravel-eloquent sẽ giúp bạn. Ngoài ra, bạn cần phải thay đổi kiểu dữ liệu của template_id cột của bạn thành JSON trong mysql –
bất kỳ lỗi nào bạn đang gặp phải? –
@AlankarThêm tôi đã thêm liên kết. Tôi đã xem bài đăng này –