Отношения между пользователем и категорией 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}}
(поле может быть другим), и вы можете показать категорию тоже.
Я надеюсь, что вы получите категории с пользователями. Если вы обнаружите какие-либо трудности, пожалуйста, прокомментируйте.