php中的连接表

时间:2018-07-12 20:48:30

标签: php yii junction-table

我想创建一个联结表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”。

有什么建议吗?

2 个答案:

答案 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