generarea unui șir din valorile bazei de date în cakephp

am o tabelă numită comercianți în baza mea de date, în tabelul respectiv am un câmp numit merchant_code și vreau să generez un cod de 8 pentru câmpul meu, astfel încât primele două caractere să conțină primele două litere de la statul meu de state tabelul și următoarele două caractere conțin primele două litere din tabelul orașul meu din tabelele de orașe, iar ultimele patru caractere trebuie să conțină cifre care încep de la ooo1. la momentul adăugării comerciantului vreau ca acest cod să se adauge automat și să fie salvat în baza mea de date Sunt un începător în tort, deci vă rog să-mi răspundeți pe scurt, ar fi recunoscător dacă aș găsi soluția

0

1 răspunsuri

Modelul de comerciant este probabil asociat cu modelul City (ca includeTo), care, la rândul său, este asociat cu modelul de stat (care includeToate). Puteți crea un apel invers după salvare pentru modelul dvs. de comerciant și verificați argumentul $ creat. Dacă este adevărat, preluați doar 2 înregistrări din modele asociate și compuneți codul dvs. de comerciant. Ceva de genul asta: (având în vedere că utilizați un comportament de tip Containable pentru modelul orașului dvs.):

public function afterSave($created) {
    parent::afterSave($created);
    if ($created) {
        $this->City->contain('State');
        $names = $this->City->find('first', array(
            'conditions' => array(
                'City.id' => $this->data['Merchant']['city_id']
            ),
            'fields' => array(
                'City.city_name',
                'State.state_name',
            )
        ));

        if (!empty($names)) {
            $merchant_code = substr($names['State']['state_name'], 0, 2)
                . substr($names['City']['city_name'], 0, 2)
                . sprintf('%1$04d', $this->getLastInsertID());
            $this->saveField('merchant_code', $merchant_code);
        }
    }
}
2
adăugat
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT