fuelphp-ORM有很多,属于
我有关系问题(lol)。。。这是关于ORM的 我有两种型号的“项目”和“报价”。一个项目可以有很多优惠-所以优惠属于该项目。但是,报价也有一个不同的项目 以下是我的(简化)项目模型:fuelphp-ORM有很多,属于,php,orm,fuelphp,Php,Orm,Fuelphp,我有关系问题(lol)。。。这是关于ORM的 我有两种型号的“项目”和“报价”。一个项目可以有很多优惠-所以优惠属于该项目。但是,报价也有一个不同的项目 以下是我的(简化)项目模型: class Model_Item extends \Orm\Model { protected static $_belongs_to = array('user', 'offer'); protected static $_has_many = array('offers'); protected
class Model_Item extends \Orm\Model
{
protected static $_belongs_to = array('user', 'offer');
protected static $_has_many = array('offers');
protected static $_properties = array(
'id',
'user_id',
);
}
以下是我的(简化)报价模型:
class Model_Offer extends \Orm\Model
{
protected static $_belongs_to = array('item');
protected static $_has_one = array('item');
protected static $_properties = array(
'id',
'item_id',
'owneditem_id', // <- THIS IS THE ITEM IT OWNS
);
}
类模型\u提供扩展\Orm\Model
{
受保护的静态$属于=数组('item');
受保护的静态$有一个=数组('item');
受保护的静态$\u属性=数组(
“id”,
“项目id”,
“owneditem\u id”,我终于拿到了
提供关系:
protected static $_has_one = array(
//(offered item)
'offereditem' => array(
'key_from' => 'offereditem_id',
'model_to' => 'Model_Item',
'key_to' => 'id',
'cascade_save' => true,
'cascade_delete' => false,
)
);
和项目模型关系:
protected static $_has_one = array(
//(offered item)
'offereditem' => array(
'key_from' => 'offereditem_id',
'model_to' => 'Model_Item',
'key_to' => 'id',
'cascade_save' => true,
'cascade_delete' => false,
)
);
受保护的静态$属于=数组('user','item');
受保护的静态$有\u many=array('offers')
对于迁移:
//Add OfferedItem to Offers Migration
oil generate migration add_offereditem_to_offers offereditem:int
//Rename OfferedItem to OfferedItem_ID in Offers Migration
oil generate migration rename_field_offereditem_to_offereditem_id_in_offers
在fuel/app/migration中修改您的create_Offers.php
public function up()
{
\DBUtil::create_table('offers', array(
'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment'
), array('id'),false, 'InnoDB', 'utf8_general_ci',
array(
array(
'constraint' => 'offers_items',
'key' => 'offer_id',
'reference' => array(
'table' => 'items',
'column' => 'id',
),
'on_update' => 'CASCADE',
'on_delete' => 'RESTRICT'
))););
}