首页 > 解决方案 > 模型中的 Yii2 Getter Setter

问题描述

我有一个模型,BukuBank.php然后通常用于BukuBankSearch. 这个模型与另一个模型有很多关系。这是模型

<?php

class BukuBank extends ActiveRecord {

    public static function tableName() {
        return 'buku_bank';
    }

    private $customer; // for AR, not taken from db
    private $tipe; // for AR, not taken from db
    private $bank; // for AR, not taken from db
    private $tanggalTransaksi; // for AR, not taken from db
    private $referensi; // for AR, not taken from db
    private $debit; // for AR, not taken from db



    /**
     * @return mixed
     */
    public function getCustomer() {
        switch ($this) {
            case $this->isFromBuktiPenerimaanInvoiceOrDebitNote :
                $this->customer = $this->buktiPenerimaan->customer->nama;
                break;
            case $this->isFromBuktiPenerimaanOther :
                $this->customer = $this->buktiPenerimaanOther->customer->nama;
                break;
            case $this->isFromBuktiPenerimaanPelunasanOutstanding :
                $this->customer = $this->buktiPenerimaanPelunasanOutstanding->customer->nama;
                break;
            default:
                break;
        }
        return $this->customer;
    }

    /**
     * @return mixed
     */
    public function getTipe() {
        switch ($this) {
            case $this->isFromBuktiPenerimaanInvoiceOrDebitNote :
                $this->tipe = 'Bukti Penerimaan Invoice | DN';
                break;
            case $this->isFromBuktiPenerimaanOther :
                $this->tipe = 'Bukti Penerimaan Other';
                break;
            case $this->isFromBuktiPenerimaanPelunasanOutstanding :
                $this->tipe = 'Bukti Penerimaan Pelunasan Outstanding';
                break;
            default:
                break;
        }
        return $this->tipe;
    }

    /**
     * @return mixed
     */
    public function getBank() {
        switch ($this) {
            case $this->isFromBuktiPenerimaanInvoiceOrDebitNote :
                $this->bank = $this->buktiPenerimaan->bankDetail->bank->alias;
                break;
            case $this->isFromBuktiPenerimaanOther :
                $this->bank = $this->buktiPenerimaanOther->bankDetail->bank->alias;
                break;
            case $this->isFromBuktiPenerimaanPelunasanOutstanding :
                $this->bank = $this->buktiPenerimaanPelunasanOutstanding->bankDetail->bank->alias;
                break;
            default:
                break;
        }
        return $this->bank;
    }

    /**
     * @return mixed
     */
    public function getTanggalTransaksi() {
        switch ($this) {
            case $this->isFromBuktiPenerimaanInvoiceOrDebitNote :
                $this->tanggalTransaksi = $this->buktiPenerimaan->tanggal_setor;
                break;
            case $this->isFromBuktiPenerimaanOther :
                $this->tanggalTransaksi = $this->buktiPenerimaanOther->tanggal_setor;
                break;
            case $this->isFromBuktiPenerimaanPelunasanOutstanding :
                $this->tanggalTransaksi = $this->buktiPenerimaanPelunasanOutstanding->tanggal_setor;
                break;
            default:
                break;
        }
        return $this->tanggalTransaksi;
    }

    /**
     * @return mixed
     */
    public function getReferensi() {
        switch ($this) {
            case $this->isFromBuktiPenerimaanInvoiceOrDebitNote :
                $this->referensi = $this->buktiPenerimaan->nomor_surat;
                break;
            case $this->isFromBuktiPenerimaanOther :
                $this->referensi = $this->buktiPenerimaanOther->nomor_surat;
                break;
            case $this->isFromBuktiPenerimaanPelunasanOutstanding :
                $this->referensi = $this->buktiPenerimaanPelunasanOutstanding->nomor_surat;
                break;
            default:
                break;
        }
        return $this->referensi;
    }

    /**
     * @return mixed
     */
    public function getDebit() {
        switch ($this) {
            case $this->isFromBuktiPenerimaanInvoiceOrDebitNote :
                $this->debit = $this->buktiPenerimaan->jumlah_setor;
                break;
            case $this->isFromBuktiPenerimaanOther :
                $this->debit = $this->buktiPenerimaanOther->jumlah_setor;
                break;

            case $this->isFromBuktiPenerimaanPelunasanOutstanding :
                $this->debit = $this->buktiPenerimaanPelunasanOutstanding->jumlah_setor;
                break;

            default:
                break;
        }
        return $this->debit;
    }
}

如您所见,我对关系进行了很多变量检查。这是否意味着 getter 总是查询这些字段本身的选择?

你有什么建议……?任何帮助它如此apprciated。

标签: phpyii2

解决方案


推荐阅读