【问题标题】:Problem in showing additional field of pivot table in Larvel Nova在 Laravel Nova 中显示数据透视表的附加字段时出现问题
【发布时间】:2019-05-08 04:53:39
【问题描述】:

我在管理方面使用 Laravel Nova。 我有这个问题,在我的数据透视表中,我添加了额外的字段。 我有用户表和事件表。用户可以有很多事件,而事件可以有很多用户。所以我为这两个模型创建了一个数据透视表。但我想要用户事件的状态。所以我在数据透视表中添加了额外的状态字段。

我现在的问题在于 Laravel Nova。 在我的活动资源中,我有这个:

BelongsToMany::make('Pending Users', 'pendingUsers', 'App\Nova\User'),

它显示了待处理客户的另一个表。我已经可以获取特定事件中的用户列表,但我无法在表格中显示用户事件的状态。如果用户被批准或仍在等待中。

哪种策略最适合我的情况?我正在考虑为事件和用户制作一个模型。

我不知道如何在 Laravel Nova 的 BelongsToMany 中显示数据透视表的附加字段。它只是显示了我在 Nova 的用户资源中添加的内容。比如身份证和名字。但我不知道用户事件的状态将显示在哪里。我想在 BelongsToMany 事件表中显示给用户。

【问题讨论】:

    标签: laravel laravel-nova


    【解决方案1】:

    我通过将->withPivot('filed name)' 定义为让我发疯了很长时间的关系来实现这一目标。

    BelongsToMany::make('your_relationship')
        ->fields(function () {
            return [
                Text::make('your_text'),
            ];
        })
    

    你的关系会在这里就像我之前所说的那样

    public function users()
    {
      return $this->belongsToMany(User::class)->withPivot('filed name');
    }
    

    【讨论】:

    • 你能举个例子吗?我已经有了这个: return $this->belongsToMany(User::class)->withPivot('proof_of_payment');但在我的活动中,待处理用户的表格仍然只显示用户的全名。
    • BelongsToMany::make('Pending Users', 'pendingUsers', 'App\Nova\Users'),
    • 我现在可以获取数据透视表中附加列的数据。但它只会在我单击 belongsToMany 的“编辑”时显示。例如,我在数据透视表中有一个用于 proof_of_payment 的列 - 如果我单击编辑它只会显示。无法下载。
    • 很抱歉我没有按时回答))我看到它正在工作。它适用于将枢轴添加到您的模型中。希望我的帮助对你有所帮助!!
    【解决方案2】:

    您需要确保在 BOTH 模型中定义关系,然后让 Nova 知道您要显示哪些字段,如下所示:

    在您的活动资源中:

    BelongsToMany::make('Users')
    ->fields(function() {
        return [
            Text::make('status')
        ];
    }),
    

    在您的事件模型中:

    public function users()
    {
      return $this->belongsToMany(User::class)->withPivot('status');
    }
    

    在您的用户模型中:

    public function events()
    {
      return $this->belongsToMany(Event::class)->withPivot('status');
    }
    

    【讨论】:

    • 谢谢先生。有没有办法将文件显示为索引,以便用户可以下载它并且不需要添加下载操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 2018-12-16
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多