Aktywne Wpisy
essos +2
Wielu z was tutaj robi z Zaleckiego jakiegos zabijake, przed ktorym ferrari powinien speirdalac, a przeciez to typ ktory zaprezentował 3 razy obsranie w oktagonie godne lasika. Wiadome ze przeciwnicy nie ci sami, ale jednak o czymś to świadczy
#famemma
#famemma
BoroPrimorac +34
źródło: Zdjęcie z biblioteki
Pobierz




W bazie danych mam trzy tabele:
users - user_id | name | email | ... | address_idinvoices - invoice_id | nip | regon | address_id
addresses - address_id | city | country | ...
users.address_idorazinvoice.address_idto klucze obce do address.W gii wygenerowałem trzy modele dziedziczące z ActiveRecord, na froncie korzystam z yii\widgets\ActiveForm. Gdy na formularz składają się tylko dane usera i jego adres to wszystko hula, formularz generuję tak:
= $form-field($user_model, 'name')->textInput() ?>= $form-field($user_model, 'email')->textInput() ?>
= $form-field($address_model, 'country')->textInput() ?>= $form-field($address_model, 'city')->textInput() ?>
Chciałbym jednak osiągnąć sytuację, w której user wprowadza swoje dane, swój adres, dane do faktury i adres do faktury, a wszystko to w jednym formularzu - z obsłużeniem tego w backendzie nie będzie problemu, jednak problem w tym, że coś takiego:
= $form-field($invoice_model, 'city')->textInput() ?>Wyrzuca
unknown property: common\models\Invoice::city.Będę wdzięczny za wszelkie podpowiedzi. Dokumentacja + google + stack + jakieś losowe tutoriale nic mądrego nie podpowiadają, przy czym bardzo możliwe, że źle szukam bo to mój pierwszy raz z yii2 i dopiero próbuję się połapać :)
Znalazłem tak
formularz:
= $form-field($address_model, '[user]country')->textInput() ?>= $form-field($address_model, '[invoice]country')->textInput() ?>
backend:
$redaction_addr = new Address();$invoice_addr = new Address();
$user_addr->load($data['Address'], 'user');$invoice_addr->load($data['Address'], 'invoice');
@uirapuru: jeśli dobrze rozumiem to idea jest taka, że model jest przypisany do pól formularza (name="Model[]"), po czym w backendzie robię sobie $model->load($post, 'Model') i gra. Ma to sens, aczkolwiek - jak słusznie zauważyłeś - raczej do prostych rzeczy.
Przy czym wciąż zakładam, że mogę czegoś nie wiedzieć :)