I trying to get records from 2 tables,
One table is position and another one is items which have parent_id. this is some sample data:
Table: position
title    
----------
admin
user
Table: items
id   |  position  |  title  |  parent_id
-----+------------+---------+------------
1    | admin      | Test    | 0
2    | admin      | Test 2  | 0
3    | admin      | Test 3  | 2
4    | admin      | Test 4  | 3
5    | user       | Test 2  | 0
parent_id in this table refer to parent record in this table.
This is my models relations:
Model: Items
    public function child()
    {
        return $this->hasMany(self::class, 'parent_id', 'id');
    }
    public function children()
    {
        return $this->child()->with('children');
    }
Model: Position
public function pos()
    {
        return $this->hasMany('App\Models\Items', 'position', 'title');
    }
    public function pos_children()
    {
        return $this->pos()->with('children')->where('parent_id', '=', 0);
    }
Now I trying to get all positions with items so I wrote this code in my controller:
NavigationPosition::with('pos_children')->get();
Everything is OK until now and all records will fetch from database but I have problem when I use toJson() method :
NavigationPosition::with('pos_children')->get()->toJson();
I will get this error:
(1/1) BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::getHasActiveAttribute()
What should I do?
via Chebli Mohamed
 
Aucun commentaire:
Enregistrer un commentaire