Laravel Nova 2个模型于1个资源中

时间:2018-12-11 20:54:43

标签: laravel laravel-nova

就我而言,我有一个用户

 Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('address_id')->nullable();
        $table->foreign('address_id')->references('id')->on('addresses');
        $table->string('first_name');
        $table->string('insertion')->nullable();
        $table->string('last_name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->string('phone_number');
        $table->string('avatar')->nullable();
        $table->rememberToken();
        $table->timestamps();
        $table->softDeletes();
    });

我有一个地址

Schema::create('addresses', function (Blueprint $table) {
        $table->increments('id');
        $table->string('city');
        $table->string('street');
        $table->string('zip_code');
        $table->string('state');
        $table->string('house_number');
        $table->timestamps();
    });

是否可以在同一Nova用户资源中创建一个新用户并向其添加地址?

我们可以在资源的字段功能中添加什么?

我需要覆盖默认的创建方法吗?还是可以使用belongsTo来解决此问题?

当前我可以使用

  

morhpOne

方法,但这不是我想要的。我首先必须创建一个用户,然后再添加一个地址。

1 个答案:

答案 0 :(得分:1)

这应该很简单,在您的Nova User模型中添加

BelongsTo::make('Address');

Address字段应代表您的User模型中返回地址关系的函数

所以您的用户应该有

public function address()
{
    return $this->belongsTo(Address::class);
}

我希望这就是您要寻找的东西,如果有更多信息,我将很乐意更新我的答案。