如何在 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效果图

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

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

4年前 评论

添加 Laravel Nova的 tags 扩展

扩展链接

Github链接

file

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

4年前 评论

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

4年前 评论
GalaxyNo_1

:see_no_evil:

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!