如何使用PHP创建相关记录
我已经建模了两个具有多对多关系的类:User和Conversation,当我使用它们时,我无法创建这两个类之间的链接:如何使用PHP创建相关记录,php,doctrine,many-to-many,associations,entity-relationship,Php,Doctrine,Many To Many,Associations,Entity Relationship,我已经建模了两个具有多对多关系的类:User和Conversation,当我使用它们时,我无法创建这两个类之间的链接: class User extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('udid', 'string', 255); $this->hasColumn('nb_requetes', 'integer', 255);
class User extends Doctrine_Record
{
public function setTableDefinition() {
$this->hasColumn('udid', 'string', 255);
$this->hasColumn('nb_requetes', 'integer', 255);
}
public function setUp() {
$this->actAs('Timestampable');
$this->hasMany('Conversation as Conversations',
array('local'=> 'user_id',
foreign'=> 'conversation_id',
'refClass' => 'UserConversation'));
}
}
及
我试着通过这样做来使用它:
$user = new User();
$user->save();
$conversation = new Conversation();
$conversation->users[] = $user;
$conversation->save();
但它不起作用,我的连接表“UserConversation”保持为空。。。我这样做对吗
谢谢你的回答
Martin以下是多对多所需的课程。我已经根据自己的代码对其进行了修改,因此字段名称略有不同,但它应该让您了解您需要什么:
class User extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', 255);
}
public function setUp()
{
parent::setUp();
$this->hasMany('Conversation as Conversations', array(
'refClass' => 'UserConversations',
'local' => 'conversation_id',
'foreign' => 'user_id'
));
}
}
class Conversation extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', 255);
}
public function setUp()
{
parent::setUp();
$this->hasMany('User as Users', array(
'refClass' => 'UserConversations',
'local' => 'user_id',
'foreign' => 'conversation_id'
));
}
}
class UserConversations extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('user_id', 'integer', 4, array(
'type' => 'integer',
'primary' => true,
'length' => '4',
));
$this->hasColumn('conversation_id', 'integer', 4, array(
'type' => 'integer',
'primary' => true,
'length' => '4',
));
$this->hasColumn('name', 'string', 255, array(
'type' => 'string',
'length' => '255',
));
}
public function setUp()
{
parent::setUp();
}
}
Is
$conversation->users[0]=$user代码>工作?
class User extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', 255);
}
public function setUp()
{
parent::setUp();
$this->hasMany('Conversation as Conversations', array(
'refClass' => 'UserConversations',
'local' => 'conversation_id',
'foreign' => 'user_id'
));
}
}
class Conversation extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', 255);
}
public function setUp()
{
parent::setUp();
$this->hasMany('User as Users', array(
'refClass' => 'UserConversations',
'local' => 'user_id',
'foreign' => 'conversation_id'
));
}
}
class UserConversations extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('user_id', 'integer', 4, array(
'type' => 'integer',
'primary' => true,
'length' => '4',
));
$this->hasColumn('conversation_id', 'integer', 4, array(
'type' => 'integer',
'primary' => true,
'length' => '4',
));
$this->hasColumn('name', 'string', 255, array(
'type' => 'string',
'length' => '255',
));
}
public function setUp()
{
parent::setUp();
}
}