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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

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

5年前 评论

添加 Laravel Nova的 tags 扩展

扩展链接

Github链接

file

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

5年前 评论

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

5年前 评论
GalaxyNo_1

:see_no_evil:

5年前 评论

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