使用嵌套集合直接在 Laravel Nova 中创建新资源

问题描述 投票:0回答:1

我正在使用 Laravel Nova。我有一家公司的资源,应该有地址。地址存储在不同的全局地址资源中。创建公司时如何直接添加地址信息?

这就是我现在拥有这个字段的原因:

public function fields(Request $request)
{
    return [
        ID::make()->sortable(),
        Text::make('Company name', 'name')->sortable()->rules('required', 'max:255'),
        Text::make('Website', 'website')->hideFromIndex()->rules('nullable', 'url'),
        Markdown::make('Info')->alwaysShow(),
        BelongsTo::make('User')->searchable()->rules('required'),

        ## Address Resource needs
        Place::make('Streetname and number', 'address.address')->hideWhenUpdating(),
        Text::make('City', 'address.city')->hideWhenUpdating(),
        Text::make('Zipcode', 'address.postcode')->hideWhenUpdating(),
        Text::make('Latitude', 'address.latitude')->hideWhenUpdating(),
        Text::make('Longitude', 'address.longitude')->hideWhenUpdating(),

        // BelongsTo::make('Address')->searchable()->rules('required')->hideWhenCreating(),
    ];
}

但是,这行不通。我在文档中看不到任何关于存储嵌套关系的提及;这可能吗?

laravel laravel-nova
1个回答
0
投票

在 Laravel Nova 4 中,您可以将

->showCreateRelationButton()
添加到您的 BelongsTo 字段中。结果你得到

Fields\BelongsTo::make('Address', Address::class)->showCreateRelationButton()

点击“+”后可以看到创建相关模型的模式

© www.soinside.com 2019 - 2024. All rights reserved.