2

この 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()いますが、私の感じでは、これは理想的な状況とは言えません。

4

0 に答える 0