如何在 Laravel Nova 中创建和更新多对多关系的信息

我想要在创建和更新 post 的时候可以选择或更新 tag ,该如何实现?

// App\Post
public function tags()
{
    return $this->belongsToMany(Tag::class, 'post_tags');
}
// App\Tag
public function posts()
{
    return $this->belongsToMany(Post::class, 'post_tags');
}
// App\Nova\Post
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),
        Text::make('Title')
            ->rules('required', 'max:255'),
        BelongsTo::make('Category', 'category'),
        BelongsToMany::make('Tags'),
    ];
}

以上是我目前的写法,与 post 相关联的 tag 只有在 PostDetail 中显示
PostDetail效果图
createedit 时都没有显示可选择的 tag
create效果图
edit效果图

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4

同问 我也想知道怎么在一个页面创建多个表

5年前 评论

添加 Laravel Nova 的 tags 扩展

扩展链接

Github 链接

file

另外一个方法是给你的 Post 模型 添加访问器和修改器
然后在 Nova 资源中添加标签字段

5年前 评论

一对多才会显示在创建和更新界面,而多对多只能显示在详情页。

5年前 评论
GalaxyNo_1

:see_no_evil:

5年前 评论