Cum facem un CRUD pentru tabele care au tabele de traduceri *_text atasate
Pentru a intelege usor problema, explicam direct pe un exemplu real.
Ipoteza
Avem template-urile de conturi care au denumirile multi-laguage.
Cerinta
Trebuie sa avem CRUD pentru aceste template-uri de conturi (cu care sa putem edita deci, si denumirea care este multi-language).
Structura in DB (probabil deja facuta, daca ai ajuns sa ai nevoie de crud)
Datele sunt tinute in ap_account_template cu denumirea in ap_account_template_text , campul “name” (vezi traduceri in baza de date – sistemul).
Implementarea
- in modelul tabelei principale (ApAccountTemplateController) care extinde MActiveRecord (!!!) :
// declaram campurile multi-language care trebuie sa fie editabile in formular public $multilanguageFieldsForCRUD = ['name']; // si inseram regulile lor public function rules() { $rules = [ [['isAutomated'], 'integer'], [['name_1'], 'required'], [['name'], 'string', 'max' => 400], ]; $this->attachLanguageFieldRules($rules); // <-- aici return $rules; } - in formular ap-account-template/_form.php:
<?= $model->attachMultilanguageFieldsToForm($form)?>
Gata!
Categories: HINTS (tehnice), Traduceri in baza de date |
Leave a Reply
[TOP]