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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

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

4年前 评论

添加 Laravel Nova的 tags 扩展

扩展链接

Github链接

file

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

4年前 评论

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

4年前 评论
GalaxyNo_1

:see_no_evil:

4年前 评论

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