fangface / yii2-concord
Yii2框架的Concord扩展
dev-master
2016-09-03 20:53 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
Requires (Dev)
- phpunit/phpunit: 4.3.*
- yiisoft/yii2-debug: *
This package is not auto-updated.
Last update: 2024-09-28 14:52:21 UTC
README
Yii2 - Concord是一个正在进行中的项目。这是一个探索使用GitHub、Travis CI、Scrutinizer CI、Packagist、PHPUnit和Yii2的项目。到目前为止,该项目主要包括对Yii2 Active Record实现的扩展以及数据库连接管理器。在撰写本文时,Yii2仍是一个移动的目标,处于Alpha状态。
安装
安装yii2-concord的首选方式是通过 Composer。
运行以下命令:
php composer.phar require --prefer-dist "fangface/yii2-concord *"
或者
"fangface/yii2-concord": "*"
将以下内容添加到您的composer.json文件的require部分。
示例用法
放置合适的模型后,您可以像以下示例那样使用hasOne、hasMany和hasEav关系:
$customer = new Customer(); $customer->field1 = 'Field1'; $customer->field2 = 'Field2'; $customer->address->setAttributes(array( 'title' => 'Mr', 'forename' => 'A', 'surname' => 'Sample', 'jobTitle' => 'Job', 'company' => 'Company', 'address1' => 'Address1', 'address2' => 'Address2', 'address3' => 'Address3', 'city' => 'City', 'region' => 'Region', 'countryCode' => 'GBR', ),false); $customer->phone->telno = '0123456789'; $customer->customerAttributes->field1 = 'CAField1'; $customer->customerAttributes->field2 = 'CAField2'; $newOrder = new Order(array( 'field1' => 'Order-Field-1', 'field2' => 'Order-Field-2', 'field3' => 'Order-Field-3', )); // add new item $newItem = new Item(); $newItem->productCode = 'CODE1'; $newItem->quantity = 3; $newItem->totalValue = 3.36; $newItem->field1 = 'Item-Field-1'; $newItem->field2 = 'Item-Field-2'; $newItem->field3 = 'Item-Field-3'; $newOrder->items[] = $newItem; // add new item $newOrder->items[] = new Item(array( 'productCode' => 'CODE2', 'quantity' => 2, 'totalValue' => 4.80, 'field1' => 'Item-Field-1', 'field2' => 'Item-Field-2', 'field3' => 'Item-Field-3', )); // add new item $newOrder->items['abc']->productCode = 'CODE3'; $newOrder->items['abc']->quantity = 1; $newOrder->items['abc']->totalValue = 3.20; $newOrder->items['abc']->field1 = 'Item-Field-1'; $newOrder->items['abc']->field2 = 'Item-Field-2'; $newOrder->items->get('abc')->field3 = 'Item-Field-3'; // add new item $newKey = $newOrder->items->newElement(); $newOrder->items[$newKey]->productCode = 'CODE3'; $newOrder->items[$newKey]->quantity = 1; $newOrder->items[$newKey]->totalValue = 1.90; $newOrder->items[$newKey]->field1 = 'Item-Field-1'; $newOrder->items[$newKey]->field2 = 'Item-Field-2'; // add new item $newOrder->items['xyz'] = new Item(array( 'productCode' => 'POST', 'quantity' => 1, 'totalValue' => 3.98, 'field1' => 'Item-Field-1', 'field2' => 'Item-Field-2', 'field3' => 'Item-Field-3', )); $customer->orders[] = $newOrder; $customer->saveAll();
所有链接属性都已处理;
print_r($customer->allToArray());
Array
(
[id] => 1
[addressId] => 1
[phoneId] => 1
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
[customerAttributes] => Array
(
[field1] => CAField1
[field2] => CAField2
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
[address] => Array
(
[id] => 1
[customerId] => 1
[title] => Mr
[forename] => A
[surname] => Sample
[jobTitle] => Job
[company] => Company
[address1] => Address1
[address2] => Address2
[address3] => Address3
[city] => City
[region] => Region
[countryCode] => GBR
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
[country] => Array
(
[id] => 1
[countryCode] => GBR
[shortName] => UK
[longName] => United Kingdom
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
)
[phone] => Array
(
[id] => 1
[customerId] => 1
[telno] => 0123456789
)
[orders] => Array
(
[1] => Array
(
[id] => 1
[customerId] => 1
[field1] => Order-Field-1
[field2] => Order-Field-2
[field3] => Order-Field-3
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
[items] => Array
(
[1] => Array
(
[id] => 1
[customerId] => 1
[orderId] => 1
[productCode] => CODE1
[quantity] => 3
[totalValue] => 3.36
[field1] => Item-Field-1
[field2] => Item-Field-2
[field3] => Item-Field-3
[product] => Array
(
[id] => 1
[productCode] => CODE1
[description] => Description for productCode CODE1
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
)
[2] => Array
(
[id] => 2
[customerId] => 1
[orderId] => 1
[productCode] => CODE2
[quantity] => 2
[totalValue] => 4.8
[field1] => Item-Field-1
[field2] => Item-Field-2
[field3] => Item-Field-3
[product] => Array
(
[id] => 2
[productCode] => CODE2
[description] => Description for productCode CODE2
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
)
[3] => Array
(
[id] => 3
[customerId] => 1
[orderId] => 1
[productCode] => CODE3
[quantity] => 1
[totalValue] => 3.2
[field1] => Item-Field-1
[field2] => Item-Field-2
[field3] => Item-Field-3
[product] => Array
(
[id] => 3
[productCode] => CODE3
[description] => Description for productCode CODE3
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
)
[4] => Array
(
[id] => 4
[customerId] => 1
[orderId] => 1
[productCode] => CODE3
[quantity] => 1
[totalValue] => 1.9
[field1] => Item-Field-1
[field2] => Item-Field-2
[field3] =>
[product] => Array
(
[id] => 3
[productCode] => CODE3
[description] => Description for productCode CODE3
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
)
[5] => Array
(
[id] => 5
[customerId] => 1
[orderId] => 1
[productCode] => POST
[quantity] => 1
[totalValue] => 3.98
[field1] => Item-Field-1
[field2] => Item-Field-2
[field3] => Item-Field-3
[product] => Array
(
[id] => 4
[productCode] => POST
[description] => Postage and Packaging
[createdAt] => 2050-12-31 23:59:59
[createdBy] => 99
[modifiedAt] => 2050-12-31 23:59:59
[modifiedBy] => 99
)
)
)
)
)
)