Skip to content

Nesting of models #29

@martin-ro

Description

@martin-ro

Hi,

I was thinking if it would make sense to introduce model nesting a bit differently.
As far as I understand it is possible to mimic the default Laravel behavior like assigning one model as the unique parent e.g. /jobs/frontend-web-developer.

How would I go about a scenario where a model can be parent to multiple other models and vice versa?

I would like to nest a page model something like this:

-Page 1 {page-1}
--Page 2 {page-1/page-2}
----Page A {page-1/page-2/page-a}
--Page 3 {page-1/page-3}
-Category A {category-a}
--Page 4 {category-a/page-4}
----Page 5 {category-5/page-4/page-5}
--Page 6 {category-a/page-6}
-Page 7 {page-7}
--Category A {page-7/category-a}

One issue is the restriction that parent_for must be unique. I was thinking with a pivot table using parent id, child id and entity type this could be solved?

Having the model id, entity type and all it's children the slugs still could be recursively updated I think.

Any thoughts on that or a better way to achieve that sort of nesting?

*Something else: what is the reason you check $permalink->getOriginal('slug') !== $permalink->slug?

/**
     * Updating event.
     *
     * @param $model
     */
    public function updating($permalink)
    {
        if ($permalink->getOriginal('slug') !== $permalink->slug) {
            $this->ensureSlugIsUnique($permalink);

            config('permalink.rebuild_children_on_update')
                ? $this->path->recursive($permalink)
                : $this->path->single($permalink);
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions