Laravel вложенный набор, путь изменения узла / слизни - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь изменить путь к узлу при перемещении узлов в дереве страниц для динамических URL-адресов.Для этого я использую рабочие места Laravel, эти рабочие места должны обновлять путь / слаг в моей базе данных при перемещении узла.Для вложенного набора и движущейся части я использую пакет lazychaser/laravel-nestedset.

Проблема заключается в том, что при использовании $page->save() в моем UpdatePagePath.php происходит сбой всего приложения,поэтому я должен запускать команду "php artisan serve" каждый раз, когда я перемещаю узел, и путь / слаг не меняется.Laravel также не показывает журналы этой ошибки.

Кто-нибудь знает, какая здесь может быть ошибка?

AppServiceProvider: Здесь я ищу, если моя модель страницы быласохранен и если "parent_id" был изменен:

public function boot()
{

    Page::saved(function ($page) {

        if ($page->isDirty('parent_id')) {
            dispatch(new \App\Jobs\UpdatePagePath($page));

        }
    });

}

Задание: UpdatePagePath

namespace App\Jobs;

use App\Page;

class UpdatePagePath extends Job
{
    private $page;


    public function __construct(Page $page)
    {
        $this->page = $page;
    }


    public function handle()
    {
        $this->updatePaths($this->page);
    }

    private function updatePaths(Page $page)
    {
        $page->path = $page->getPath();
        $page->save(); // ERROR -> Laravel serve crashes

        if ($page->fresh()) {
            dispatch(new UpdateChildPagePaths($page));
        }
    }
}

...