class Controller_Welcome extends Controller {
public function action_index()
{
$data = array(
'name' => Text::random()
);
$order = ORM::factory('Order');
$order->values($data);
try
{
$order->save();
$cart = array(
array('price' => Text::random('numeric', 4)),
array('price' => Text::random('numeric', 4)),
array('price' => Text::random('numeric', 4)),
);
$item = ORM::factory('Item');
foreach($cart as $c)
{
$item->order_id = $order->id;
$item->price = $c['price'];
$item->save()->clear();
}
}
catch (ORM_Validation_Exception $e) {}
foreach (ORM::factory('Order')->find_all() as $o)
{
echo '<br>' . $o->name . '<br>';
foreach ($o->items->find_all() as $i)
echo $i->price . '<br>';
}
}
}
class Model_Order extends ORM {
protected $_has_many = array(
'items' => array(
'model' => 'Item',
'foreign_key' => 'order_id',
),
);
}
class Model_Item extends ORM {}
-- Adminer 3.7.0 MySQL dump
SET NAMES utf8;
SET foreign_key_checks = 0;
SET time_zone = '+03:00';
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP TABLE IF EXISTS `items`;
CREATE TABLE `items` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`order_id` int(10) unsigned NOT NULL,
`price` float NOT NULL,
PRIMARY KEY (`id`),
KEY `order_id` (`order_id`),
CONSTRAINT `items_ibfk_2` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `items` (`id`, `order_id`, `price`) VALUES
(1, 1, 10),
(2, 1, 20);
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `orders` (`id`, `name`) VALUES
(1, 'name-1'),
(2, 'name-2');
-- 2013-06-12 15:55:13