From 46e7a8722793b54de3caf95799bec4e56b8c16d0 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Wed, 26 Jun 2024 07:13:56 -0400 Subject: [PATCH] Apply fix review. --- framework/UPGRADE.md | 106 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 3 deletions(-) diff --git a/framework/UPGRADE.md b/framework/UPGRADE.md index cdaa4d028e4..f38665640bb 100644 --- a/framework/UPGRADE.md +++ b/framework/UPGRADE.md @@ -54,10 +54,110 @@ for both A and B. Upgrade from Yii 2.0.50 ----------------------- -* Minimum PHP version requirement is now PHP `7.3.0`. -* Added tests for `MariaDB`, correcting the behavior for `JSON` column type, now they work the same for `MySQL` and -`MariaDb`. +* Correcting the behavior for `JSON` column type in `MariaDb`. +Example usage of `JSON` column type in `db`: + +```php +db; +$command = $db->createCommand(); + +// Create a table with a JSON column +$command->createTable( + 'products', + [ + 'id' => Schema::TYPE_PK, + 'details' => Schema::TYPE_JSON, + ], +)->execute(); + +// Insert a new product +$command->insert( + 'products', + [ + 'details' => [ + 'name' => 'apple', + 'price' => 100, + 'color' => 'blue', + 'size' => 'small', + ], + ], +)->execute(); + +$records = $db->createCommand('SELECT * FROM product')->queryAll(); +``` + +Example usage of `JSON` column type in `ActiveRecord`: + +```php +details = [ + 'name' => 'windows', + 'color' => 'red', + 'price' => 200, + 'size' => 'large', +]; + +// Save the product +$product->save(); + +// Read the first product +$product = ProductModel::findOne(1); + +// Get the product details +$details = $product->details; + +echo 'Name: ' . $details['name']; +echo 'Color: ' . $details['color']; +echo 'Size: ' . $details['size']; + +// Read all products with color red +$products = ProductModel::find() + ->where(new \yii\db\Expression('JSON_EXTRACT(details, "$.color") = :color', [':color' => 'red'])) + ->all(); + +// Loop through all products +foreach ($products as $product) { + $details = $product->details; + echo 'Name: ' . $details['name']; + echo 'Color: ' . $details['color']; + echo 'Size: ' . $details['size']; +} +``` Upgrade from Yii 2.0.48 -----------------------