I created a form in cakephp
Controller
if($parent_id){
$parent = $this->Representatives->get($parent_id);
}
$this->loadModel('States');
$states = $this->States->find('list', ['limit' => 200, 'keyField' => 'abbr', 'valueField' => 'abbr'])->toArray();
$representative = $this->Representatives->newEntity(null, ['associated' => [ 'users' ], 'validate' => false]);
$this->set(compact('states', 'representative', 'parent'));
View
<?= $this->Form->create($representative, [
'context' => [
'validator' => [
'Users' => 'default',
'Representatives' => 'default'
]
]
]) ?>
<?= $this->Form->input('users.first_name');?>
<?= $this->Form->input('users.last_name');?>
<?= $this->Form->input('street_address');?>
<?= $this->Form->input('city');?>
<?= $this->Form->input('state');?>
<?= $this->Form->input('zip');?>
<?= $this->Form->input('phone');?>
<?= $this->Form->input('fax');?>
<?= $this->Form->input('users.email');?>
<?= $this->Form->end();?>
The output of this the fields is
<div class="col-md-6">
<div class="form-group text">
<label for="users-first-name" class="control-label">First Name</label>
<input type="text" id="users-first-name" class="form-control" name="users[first_name]">
</div>
<div class="form-group text">
<label for="users-last-name" class="control-label">Last Name</label>
<input type="text" id="users-last-name" class="form-control" name="users[last_name]">
</div>
<div class="form-group text required">
<label for="street-address" class="control-label">Street Address</label>
<input type="text" id="street-address" maxlength="255" required="required" class="form-control" name="street_address">
</div>
<div class="form-group text required">
<label for="city" class="control-label">City</label>
<input type="text" id="city" maxlength="255" required="required" class="form-control" name="city">
</div>
<div class="form-group select required">
<label for="state" class="control-label">State</label>
<select id="state" required="required" class="form-control" name="state"><option value="AL">AL</option><option value="AK">AK</option><option value="AZ">AZ</option><option value="AR">AR</option><option value="CA">CA</option><option value="CO">CO</option><option value="CT">CT</option><option value="DE">DE</option><option value="DC">DC</option><option value="FL">FL</option><option value="GA">GA</option><option value="HI">HI</option><option value="ID">ID</option><option value="IL">IL</option><option value="IN">IN</option><option value="IA">IA</option><option value="KS">KS</option><option value="KY">KY</option><option value="LA">LA</option><option value="ME">ME</option><option value="MD">MD</option><option value="MA">MA</option><option value="MI">MI</option><option value="MN">MN</option><option value="MS">MS</option><option value="MO">MO</option><option value="MT">MT</option><option value="NE">NE</option><option value="NV">NV</option><option value="NH">NH</option><option value="NJ">NJ</option><option value="NM">NM</option><option value="NY">NY</option><option value="NC">NC</option><option value="ND">ND</option><option value="OH">OH</option><option value="OK">OK</option><option value="OR">OR</option><option value="PA">PA</option><option value="RI">RI</option><option value="SC">SC</option><option value="SD">SD</option><option value="TN">TN</option><option value="TX">TX</option><option value="UT">UT</option><option value="VT">VT</option><option value="VA">VA</option><option value="WA">WA</option><option value="WV">WV</option><option value="WI">WI</option><option value="WY">WY</option></select>
</div>
<div class="form-group text required">
<label for="zip" class="control-label">Zip</label>
<input type="text" id="zip" maxlength="10" required="required" class="form-control" name="zip">
</div>
<div class="form-group tel required">
<label for="phone" class="control-label">Phone</label>
<input type="tel" id="phone" maxlength="17" required="required" class="form-control" name="phone">
</div>
<div class="form-group text required">
<label for="fax" class="control-label">Fax</label>
<input type="text" id="fax" maxlength="17" required="required" class="form-control" name="fax">
</div>
<div class="form-group email">
<label for="users-email" class="control-label">Email</label>
<input type="email" id="users-email" class="form-control" name="users[email]">
</div>
</div>
The form generated is keeping the validations from Representatives table like I see the required attribute. But its not retaining it from the Users table. Representatives
$this->belongsTo('Users', [
'className' => 'Users',
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
Please need help with this.
