0

如何建立用户与类别的关系?

一个类别有多个用户,一个用户属于一个类别

我在用户表中添加 category_id

在前端,我使用插件生成器显示用户列表, 但我还想显示用户的类别

我使用RainLab用户插件

请帮帮我,

先感谢您

4

2 回答 2

3

看来您需要扩展用户模型并添加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 %}

如有任何疑问,请发表评论。

于 2018-04-23T06:25:45.410 回答
1

与OctoberCMS 关系很容易。我认为您已经在User模型中定义了关系,如果没有先定义它,如下所示,

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

代替YourPluginNameYourAuthorName,请定义您的作者和插件名称。

定义关系后,您可以通过以下方式检索用户的类别$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; 

如果您在页面中使用twig,并且向用户显示{{ user.name}}(字段可能不同),那么您只需使用{{ user.category.name}}(字段可能不同),您也可以显示类别。

我希望你能得到用户的类别。如果您发现任何困难,请发表评论。

于 2018-04-23T05:04:01.543 回答