我想创建一个联结表sudo chmod -R a+rwx ./node_modules
,无需我手动将其保存到数据库即可解决。我尝试将其添加到我的关系中:
tbl_guid_cost_centre
,以便在保存costCentre时在'costCentre' => [
self::HAS_ONE,
'CostCentre',
'guid_to',
'foreignKey' => 'guid',
'tbl_guid_cost_centre(guid_to, cost_center_id)',
"order" => "id desc"],
中为其创建一行。但是我得到了错误:
未定义属性“ CHasOneRelation.0”。
有什么建议吗?
答案 0 :(得分:2)
您可以在关系中使用关键字through
来创建联结表:
public function relations() {
'guidCostCentre' => [
self::HAS_ONE,
'GuidCostCentre',
['guid_to' => 'guid']
],
'costCentre' => [
self::HAS_ONE,
'CostCentre',
'cost_centre_id',
'through' => 'guidCostCentre'
]
}
答案 1 :(得分:0)
您以错误的方式定义了HAS_ONE
关系。关系配置数组的前三个元素应该是:关系类型,相关模型名称和外键定义。所有其他元素都应通过与关系属性相关的键进行索引。 'tbl_guid_cost_centre(guid_to, cost_center_id)',
可能会产生此错误,因为它没有密钥,因此将其作为0
属性的值使用。您没有共享任何细节,因此很难猜测要实现的目标,但是您应该从以下类似内容开始:
'costCentre' => [
self::HAS_ONE,
'CostCentre',
'guid_to',
'order' => 'id desc',
],
并使用正确的键在末尾阵列中添加其他设置。
您可以在文档中找到一些示例和说明:https://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship