This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.
jp12715
Hello I am currently trying to extend the user plugin to allow the user to have an address. I have succeeded in doing this when the user has only one address but I want the user to be able to have multiple.
Im having some issues and cant seem to figure this out. Below is my Plugin.php boot function.
public function boot()
{
//Extending User Plugin
UserModel::extend(function($model) {
$model->hasOne['profile'] = ['Bigmotive\Profile\Models\Profile'];
$model->hasMany['addresses'] = ['Bigmotive\Profile\Models\Address'];
});
UsersController::extendFormFields(function($form, $model, $context){
if (!$model instanceof UserModel)
return;
if (!$model->exists)
return;
// Ensures profile model always exists...
ProfileModel::getFromUser($model);
$form->addTabFields([
'profile[phone]' => [
'label' => 'Phone',
'tab' => 'Profile',
],
'addresses' => [
'label' => 'Address 1',
'tab' => 'Address',
'type' => '????',
'path' => '????'
],
]);
});
}
Last updated
Renatio
You can use Reapeter field type for this.
http://octobercms.com/docs/backend/forms#widget-repeater
If you want to have Address model than you should use relation widget:
jp12715
public function boot()
{
//Extending User Plugin
UserModel::extend(function($model) {
$model->hasOne['profile'] = ['Bigmotive\Profile\Models\Profile'];
$model->hasMany['addresses'] = ['Bigmotive\Profile\Models\Address'];
});
UsersController::extend(function($controller){
if(!isset($controller->implement['Backend.Behaviors.RelationController']))
$controller->implement[] = 'Backend.Behaviors.RelationController';
$controller->relationConfig = '$/bigmotive/profile/controllers/profile/config_relations.yaml';
});
UsersController::extendFormFields(function($form, $model, $context){
if (!$model instanceof UserModel)
return;
if (!$model->exists)
return;
// Ensures profile model always exists...
ProfileModel::getFromUser($model);
$form->addTabFields([
'profile[phone]' => [
'label' => 'Phone',
'tab' => 'Profile',
],
'addresses' => [
'label' => 'Address',
'tab' => 'Address',
'type' => 'partial',
'path' => '$/bigmotive/profile/controllers/profile/_addresses.htm',
'context' => 'update'
]
]);
});
}
Last updated
1-4 of 4