Отношения между пользователем и категорией OctoberCMS

Как установить отношения между пользователем и категорией?

Категория имеет более одного пользователя, и пользователь принадлежит к категории

Я добавляю category_id в пользовательскую таблицу

на веб-интерфейсе я отображаю список пользователей с помощью построителя плагинов,но я также хочу отображать категорию пользователей

Я использую плагин RainLab

Помоги мне, пожалуйста,

заранее спасибо

2 ответа

Решение

Кажется, вам нужно расширить пользовательскую модель и добавить category время выполнения отношения

Вам нужно добавить этот код в метод загрузки вашего плагина

public function boot()
{
    //Extending User Plugin
    \RainLab\User\Models\User::extend(function($model) {

        $model->hasOne['category'] = 'HardikSatasiya\Plugin\Models\Category';

    });
}

этот код добавит динамическое отношение к пользовательской модели, так что теперь вы можете использовать это отношение напрямую, как $userModel->category->name

так что теперь в списке вы можете использовать код ниже

{% for user in records %}
    Email : {{ user.email }}
    Category : {{ user.category.name }}
{% endfor %}

если есть сомнения, пожалуйста, прокомментируйте.

Это очень легко с отношениями OctoberCMS. Я думаю, что вы определили отношения в вашем User Модель, если она не определена сначала, как показано ниже,

    public $belongsTo = [
        'catgeory' => 'YourPluginName\YourAuthorName\Models\Category'
    ];

Вместо YourPluginName и YourAuthorName укажите своего автора и имя плагина.

После определения отношений вы можете получить категорию пользователя по $user->category

Например, предположим, что у вас есть первый пользователь, затем вы можете получить категорию,

$user = User::first();
$category = $user->category;

//and now you can get the category name and all fields by $category,
//$category->title;
//$catgory->name; 

И если вы используете ветку на странице, и вы показываете пользователям с {{ user.name}} (поле может быть другим), тогда вы должны просто использовать {{ user.category.name}} (поле может быть другим), и вы можете показать категорию тоже.

Я надеюсь, что вы получите категории с пользователями. Если вы обнаружите какие-либо трудности, пожалуйста, прокомментируйте.