使用与primaryKey不同的列的模型存储

时间:2015-07-27 12:41:24

标签: php laravel octobercms

我有这个Laravel / OctoberCMS模型与我的ExchangeModel接口。

这是与我的ExchangeModel的单方面关系。 目前,它通过ExchangeModel.id存储在Customer数据库表中。但我希望它存储为ExchangeModel.currencyISO,这是一个3个字母的国家代码。

我需要在关系中设置什么才能让laravel通过我试图通过otherKey或key而不是primaryKey(id)定义的其他字段来存储它?

<?php namespace PhunTime\Client\Models;

use Model;
/**
 * Customer Model
 */
class Customer extends Model {
    /**
     * @var string The database table used by the model.
     */
    public $table = 'CUSTOMER';
    public $primaryKey = 'customerNumber';

    /**
     * @var array Relations
     */
    public $belongsTo = ['currency' => ['PhunTime\ExchangeRate\Models\ExchangeModel',
            'key' => 'currencyISO',// EUR,USD,YEN
            'otherKey' => 'currencyISO'

    ]];
}

澄清结构:

- Customer
   - id
   - name
   - currency(varchar(3)) <-- relation

 - ExchangeModel
   - id
   - currencyISO

目前ExchangeModel.id存储在Customer.currency

我希望ExchangeModel.currencyISO存储在Customer.currency中 Customer.currency已经是一个适合接受它的varchar字段。

目前,如果我在fields.yaml中指定type:relation,则无论我指定应如何存储它,都会按ExchangeModel.id存储它。使用otherKey,foreignKey,key,没有什么能帮助改变十月的思想。

目前我正在使用type: dropdown来填充getcurrencyOptions(),但我认为这是一个不太理想的情况。

0 个答案:

没有答案