【发布时间】:2014-08-22 11:17:49
【问题描述】:
我有 xml_document 包含这些列的表:
id
general_information_id
我有 general_information 包含这些列的表:
id
domain
log_file
它们之间的关系是一对一的。
我是否正确地建立了关系?或者我需要将xml_document_id 列添加到general_information 表中。
其次:
我已经向xml_doucment 添加了一行,现在我想向general_information 添加一行并将这个新行链接到xml_document
我试过了:
$xmlDocument = XmlDocument::find(Input::get(4));
$generalInformation = new GeneralInformation($dataGeneralInformation);
$generalInformation->xmlDocument()->associate($xmlDocument);
//$xmlDocument->generalInformation()->attach($generalInformation);
$generalInformation->save();
$xmlDocument->save();
但我收到xml_document_id 列在general_information 表中不存在的错误。
我尝试用attach 替换associate,但我发现attach 不是现有函数。
请帮助我,我尝试过这种一对一的关系,我不知道做 id 的正确方法是什么。我不知道在数据库中的哪里添加列以及在模型中做什么。我已经尝试了很多东西,但仍然很困惑。
更新 1
class GeneralInformation extends Eloquent{
.....
public function xmlDocument(){
return $this->belongsTo('XmlDocument');
}
}
class XmlDocument extends Eloquent {
....
public function generalInformation(){
return $this->hasOne('GeneralInformation','general_information_id');
}
}
【问题讨论】:
-
请问为什么有人会否决这样的问题?至少留个便条。我一直试图理解这个问题 4 天。我向你展示了很好的努力。
-
投反对票的不是我,但可能是因为格式不佳以及缺少代码中最重要的部分,即您的模型。
-
您应该提供更多信息,两个表是如何关联的,哪一个是子表中的
foreign key,这里的孩子是谁? -
@WereWolf-TheAlpha 这是一对一的关系,所以问题的一部分是请告诉我是否应该在
general_information表中创建外键。我应该放两个外键吗?每张桌子一个?这是不可能的,对吧?
标签: php mysql database laravel laravel-4