There is no problem not worth solving, and no technology not worth learning!

In Laravel 6, use WHEREJSONContains to query the data in the JSON type field (structure is an array)

生成的 SQL 如下

1. In MySQL 5.7, the data in the json type field is an array, and its value is:[365]. as shown in Figure 1

在 MySQL 5.7 中,json 类型字段中的数据是数组,其值为:[365]
Figure 1
2. Reference: Query the constructor – where statement – json where statement:https://learnku.com/docs/laravel/6.x/queries/5171#35d9d9. JSON arrays can be queried using WhereJsonContains. as shown in Figure 2

参考:查询构造器 - Where 语句 - JSON Where 语句:https://learnku.com/docs/laravel/6.x/queries/5171#35d9d9 。可以使用 whereJsonContains 来查询 JSON 数组
Figure 2

3. The code is implemented as follows


$themeSaasTaskId = 365;
$themeSaasTasks = ThemeSaasTask::whereJsonContains('theme_task_ids', $themeSaasTaskId)->get();
print_r($themeSaasTasks);
exit;


4. Print the query results as follows, in line with expectations


Illuminate\Database\Eloquent\Collection Object
(
    [items:protected] => Array
        (
            [0] => Modules\ThemeStoreDB\Entities\ThemeSaasTask Object
                (
                    [table:protected] => theme_saas_task
                    [attributes:protected] => Array
                        (
                            [id] => 2
                            [type] => update_theme
                            [theme_task_ids] => [365]
                            [created_at] => 2022-12-21 08:06:49
                            [updated_at] => 2022-12-21 08:06:51
                        )

                    [fillable:protected] => Array
                        (
                        )

                    [connection:protected] => mysql
                    [primaryKey:protected] => id
                    [keyType:protected] => int
                    [incrementing] => 1
                    [with:protected] => Array
                        (
                        )

                    [withCount:protected] => Array
                        (
                        )

                    [perPage:protected] => 15
                    [exists] => 1
                    [wasRecentlyCreated] => 
                    [original:protected] => Array
                        (
                            [id] => 2
                            [type] => update_theme
                            [theme_task_ids] => [365]
                            [created_at] => 2022-12-21 08:06:49
                            [updated_at] => 2022-12-21 08:06:51
                        )

                    [changes:protected] => Array
                        (
                        )

                    [casts:protected] => Array
                        (
                        )

                    [dates:protected] => Array
                        (
                        )

                    [dateFormat:protected] => 
                    [appends:protected] => Array
                        (
                        )

                    [dispatchesEvents:protected] => Array
                        (
                        )

                    [observables:protected] => Array
                        (
                        )

                    [relations:protected] => Array
                        (
                        )

                    [touches:protected] => Array
                        (
                        )

                    [timestamps] => 1
                    [hidden:protected] => Array
                        (
                        )

                    [visible:protected] => Array
                        (
                        )

                    [guarded:protected] => Array
                        (
                            [0] => *
                        )

                )

        )

)



5. The generated SQL is as follows, as shown in Figure 3

生成的 SQL 如下
Figure 3

select * from `theme_saas_task` where json_contains(`theme_task_ids`, '365')


PHP / Laravel / Yii2 Legacy Project Maintenance & Long-Term Technical Support

If your PHP / Laravel / Yii2 project is already in production but needs bug fixing, API troubleshooting, performance optimization, developer handover support, or long-term maintenance, feel free to contact me for remote technical support.

Ideal For:
✅ PHP legacy systems without active maintenance
✅ Laravel / Yii2 project bug fixes
✅ Admin panel feature iterations
✅ RESTful API troubleshooting
✅ MySQL / Redis / Nginx performance issues
✅ Long-term remote part-time maintenance

We can start with a small task:
✅ Production error troubleshooting
✅ API issue analysis
✅ Slow query and performance bottleneck diagnosis
✅ Initial code structure review
✅ Deployment environment and log inspection

If you would like to discuss your project, please contact me and mention: PHP Maintenance Consultation.

Contact Me:
Telegram: @shuijingwan
WeChat: 13980074657
Email: shuijingwanwq@gmail.com

评论

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.