首页 文章

Laravel Nova自我指涉关系

提问于
浏览
0

在Laravel,如果我想 Build 一种自我指涉关系,我可以做以下事情:

class Post extends Eloquent
{
    public function parent()
    {
        return $this->belongsTo('Post', 'parent_id');
    }

    public function children()
    {
        return $this->hasMany('Post', 'parent_id');
    }
}

如何让Laravel Nova资源显示此连接?

public function fields(Request $request)
{
    return [
        Text::make('Autor', 'author'),
        Select::make('Type', 'type')->options([
            'News' => 'news',
            'Update' => 'update',
        ]),
        BelongsToMany::make('Post') // does not work
    ];
}

1 回答

  • 2

    你可以像这样实现你想要的:

    BelongsTo::make('Parent', 'parent', Post::class),
    
    HasMany::make('Children', 'children', Post::class),
    

    这将允许您在创建或更新帖子时选择父帖子 . 当您在帖子的详细信息页面中时,您可以看到它的所有子项 .

    public function fields(Request $request)
    {
        return [
            Text::make('Autor', 'author'),
            Select::make('Type','type')->options([
                'News' => 'news',
                'Update' =>  'update',
            ]),
            BelongsTo::make('Parent', 'parent', Post::class),
            HasMany::make('Children', 'children', Post::class),
        ];
    }
    

相关问题