如何在 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 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4

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

6年前 评论

添加 Laravel Nova的 tags 扩展

扩展链接

Github链接

file

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

6年前 评论

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

6年前 评论
GalaxyNo_1

:see_no_evil:

6年前 评论

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