0

Ich möchte eine Liste in Backend-Controller für meine Benutzer unter einem neuen Tab implementieren.OctoberCMS Liste zur Registerkarte hinzufügen Feld

https://ibb.co/fkAWFR (Add Tab-Feld)


UsersController::extendFormFields(function($form, $model, $context){ 
      if (!$model instanceof UserModel) 
       return; 
      if (!$model->exists) 
       return; 
      $form->addTabFields([ 
       'activity' => [ 
        'tab' => 'Activity', 
        'type' => 'partial', 
        'path' => '$/acme/plugin/controllers/viewedjobs/_viewed_jobs.htm' 
       ] 
      ]); 
     }); 

https://ibb.co/ktHdvR (enthalten) Diese Liste

Meine _viewed_jobs.htm Teil sieht wie folgt aus:

listRender()>

, die ein wirft? Fehler beim Listenverhalten wurde nicht initialisiert. Nach einiger Suche fand ich diese Beiträge: https://octobercms.com/forum/post/listcontroller-error-need-help

So

$this->asExtension('ListController')->index()
den Teil und zeigt jetzt Ich habe es meine Benutzerliste Controller.

Ich möchte eine Liste für meinen AngesehenJobs-Controller anzeigen. Ich habe auch das Tutorial hier angesehen: https://octobercms.com/support/article/ob-21, um meine Liste manuell zu erstellen, jedoch sind die Variablen nicht definiert, wenn ich diesen Code verwende.

Ich habe auch versucht, eine neue Liste Konfiguration unter dem Benutzer-Plugin (die ich weiß, ist keine Best Practice), aber es wirft und Fehler über Gruppen() -Methode nicht gefunden.

Antwort

1

können Sie einfach Listen anzeigen.

Ich gehe davon aus, dass Sie regen-lab Benutzer-Plugin und aktuellen Userscontroller verwenden benutzer Controllers regen Labor

und Sie haben Job Tabelle und haben mm Beziehung zwischen Benutzer und Job Tabel

Sie diesen Code in Ihre Plugins benötigen Boot Methode

// first we extend users model with jobs relation 
\RainLab\User\Models\User::extend(function($model) { 
    $model->belongsToMany['jobs'] = [\Hardiksatasiya\Test\Models\Job::class, 'table' => 'hardiksatasiya_test_job_user']; 
}); 

// we now extend users controller to add relation behavior 
// also add relational configuration 
// we are doing this with not destructive method 
// so our extend will play nice to other's extends 
\RainLab\User\Controllers\Users::extend(function($controller) { 
    // Implement behavior if not already implemented 
    if (!$controller->isClassExtendedWith('Backend.Behaviors.RelationController')) { 
     $controller->implement[] = 'Backend.Behaviors.RelationController'; 
    } 

    // Define property if not already defined 
    if (!isset($controller->relationConfig)) { 
     $controller->addDynamicProperty('relationConfig'); 
    } 

    // Splice in configuration safely 
    $myConfigPath = '$/hardiksatasiya/test/models/job/config_relation_for_users.yaml'; 

    $controller->relationConfig = $controller->mergeConfig(
     $controller->relationConfig, 
     $myConfigPath 
    ); 
}); 

// now your actual code for extending fields 
\RainLab\User\Controllers\Users::extendFormFields(function($form, $model, $context){ 
    if (!$model instanceof \RainLab\User\Models\User) 
     return; 
    if (!$model->exists) 
     return; 
    $form->addTabFields([ 
     'jobs' => [ 
      'tab' => 'Activity', 
      'type' => 'partial', 
      'path' => '$/hardiksatasiya/test/controllers/job/_user_job_relation.htm' 
     ] 
    ]); 
}); 
setzen

Beziehung config => config_relation_for_users.yaml

jobs: 
    label: Jobs 
    view: 
    showCheckboxes: false 
    toolbarButtons: false 
    list: $/hardiksatasiya/test/models/job/columns.yaml 

Beziehung Teil => _user_job_relation.htm

<?= $this->relationRender('jobs') ?> 

Wenn es nicht dann kommentieren arbeiten bitte

+0

Awesome! Ich habe buchstäblich genau die gleiche Lösung gepostet, als du gepostet hast! Gut zu wissen, dass ich zumindest auf dem richtigen Weg war. – TransitionCenter

+0

yup, du bist auf absolutem rechten Weg :) –

0

ich ging voran a hat mit dem Beziehungsmanager OctoberCMS relations gearbeitet

UsersController::extend(function($controller){   
     // Splice in configuration safely 
     $myConfigPath = '$/acme/plugin/controllers/ControllerName/config_relation.yaml'; 

     $controller->relationConfig = $controller->mergeConfig(
      $controller->relationConfig, 
      $myConfigPath 
     ); 
    }); 

ich dann die partielle _viewed_jobs.htm zu <?= $this->relationRender('viewedJobs') ?>

Ich habe jetzt aktualisiert die Liste angezeigt, wie so Completed list added to tab field for user controller

Verwandte Themen