laravel-nestedset icon indicating copy to clipboard operation
laravel-nestedset copied to clipboard

FixTree should allow selecting extra columns

Open walkingCommiter opened this issue 4 years ago • 1 comments

What happens: In QueryBuilder:fixTree() method there is a section where the code is choosing the "to be selected" columns. This line raises an issue for us since our Entity requires an extra column to be selected or else the fix tree will fail when trying to load nodes in the next lines.

 public function fixTree($root = null)
    {
        $columns = [
            $this->model->getKeyName(),
            $this->model->getParentIdName(),
            $this->model->getLftName(),
            $this->model->getRgtName(),
            'cloud_id', // <--- our model needs this  cloud id to be properly loaded in case of passive caching
        ];

Expected Behavior: The solution is rather simple. Just allow selecting extra columns as optional. No extra change is needed:

Here is the solution:

    public function fixTree($root = null, array $extra = [])
    {
        $columns = [
            $this->model->getKeyName(),
            $this->model->getParentIdName(),
            $this->model->getLftName(),
            $this->model->getRgtName(),
        ] + $extra;

This would solve our issue and possibly any other code that has multiple clouds.

Thanks. cc: @pultho

walkingCommiter avatar Mar 22 '21 11:03 walkingCommiter

PR opened: https://github.com/lazychaser/laravel-nestedset/pull/502

walkingCommiter avatar Mar 22 '21 12:03 walkingCommiter