【问题标题】:relationship between user and category OctoberCMS用户与类别 OctoberCMS 之间的关系
【发布时间】:2018-10-02 04:49:57
【问题描述】:

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

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

我在用户表中添加category_id

在前端我使用插件builder 显示用户列表 但我也想显示用户的类别

我使用RainLab 用户插件

请帮帮我,

提前谢谢你

【问题讨论】:

    标签: octobercms octobercms-plugins octobercms-backend october-form-controller october-partial


    【解决方案1】:

    OctoberCMS relationships 非常简单。我认为您已经在 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}}(字段可能不同)你也可以显示类别。

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

    【讨论】:

    • 嗨 chirag 你添加了代码 Category 模型并在同一模型中再次添加了类别关系,我想它应该是 User 模型,而且 rainlab.user 是单独的插件,所以你不想添加直接修改它...最好扩展rainlab.user插件,这样以后插件更新不会造成任何问题。
    • 感谢您的建议,这是输入错误。而且我认为提问者已经定义了关系,他不知道检索用户的类别。
    • @LutteP.Okamango 真为你感到高兴 :) 请投票并接受答案以表示感谢
    • 是的,Hardik 是对的,因为如果 Rainlab.User 插件得到更新,那么在用户模型上编写的关系代码将丢失,因此必须将这种关系添加到他的自定义插件的启动方法中。
    【解决方案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 %}
    

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

    【讨论】:

      猜你喜欢
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 2011-05-01
      • 1970-01-01
      相关资源
      最近更新 更多