この Laravel/OctoberCMS モデルを使用して、ExchangeModel とやり取りします。
これは、私の ExchangeModel との一方的な関係です。現在、ExchangeModel.id を介して Customer データベース テーブルに格納されています。しかし、3文字の国コードであるExchangeModel.currencyISOとして保存したいと思います。
primaryKey(id) の代わりに otherKey または key を介して定義しようとしている他のフィールドを介してlaravelを保存するには、関係で何をセットアップする必要がありますか?
<?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 フィールドです。
現在type:relation
、fields.yaml で指定ExchangeModel.id
すると、どのように保存するかを指定しても保存されます。otherKey、foreignKey、key の使用は、10 月の心を変えるのに役立ちません。
現在、私はtype: dropdown
経由して入力するを使用してgetcurrencyOptions()
いますが、私の感じでは、これは理想的な状況とは言えません。