无法使用Voyager Laravel在文本字段中传递用户ID

时间:2019-02-24 00:08:48

标签: voyager

我为Laravel安装了Voyager。 我不了解这种关系以及为什么每次都会给我一个下拉菜单。

这是我所做的:

Image showing relations

如您所见,我创建了一个“ Coupon”,“ belongsTo”,“ users”关系

在优惠券表中,我创建了一个user_id列。

我想要的是在下一页中显示的用户ID,以便在用户创建优惠券时将其保存到数据库中。 问题是,当我以用户身份登录并创建优惠券时,会看到一个下拉菜单,而不是用户的ID:

Image showing user panel

知道为什么要这么做吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

假设“优惠券”作为表的模型,则可以更改保存功能,以使用当前经过身份验证的用户ID填充默认值“ belongsTo”:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Coupon extends Model
{
    public function save(array $options = [])
    {
        if(!isset($this->belongsTo)){
            $this->belongsTo = \Auth::user()->id;
        }
        parent::save();
    }
}

我希望这能解决您的问题。

回答您的实际问题,在Voyager Bread中没有可用的下一页,并且voyager中的关系将始终创建一个下拉列表,如https://docs.laravelvoyager.com/core-concepts/bread-builder#relationships文档中明确提到的那样