2017-10-09 1 views
0

J'utilise Laravel 5.3 .c'est ma requête et je veux dans le tableau de résultats le 'children_rec' renommé en 'node'.Comment renommer fonction de relation en éloquent?

$boxes = Boxes::with('children_rec') 
       ->whereNull('box_id') 
       ->with('position') 
       ->get() 
       ->toJson(128); 

MISE À JOUR: Code de la relation:

public function child() 
{ 
    return $this 
     ->hasMany('PTA_OIMS\Boxes', 'box_id'); 
} 

public function children_rec() 
{ 
    return $this->child() 
     ->with('children_rec') 
     ->with('position'); 
} 

grâce

+0

À quoi ressemble la structure de retour comme? Pourquoi ne pouvez-vous pas simplement manipuler le tableau? – tadman

+0

@tadman: structure de résultat: https: //pastebin.com/NFfWS0s2 –

+0

Modifiez votre question pour inclure tout code pertinent, s'il vous plaît ne pas l'ajouter comme un commentaire encombré. – tadman

Répondre

0

Je ne pense pas Laravel prend en charge une relation aliasing.

Vous devez renommer votre relation avec votre nom de votre choix:

public function node() 
{ 
    return $this->child() 
     ->with('node') 
     ->with('position'); 
} 

Ensuite, vous pouvez l'appeler comme:

$boxes = Boxes::with('node') 
       ->whereNull('box_id') 
       ->with('position') 
       ->get() 
       ->toJson(128);