-2
votes

Ne peut pas accéder aux données de beaucoup de relation

J'ai un modèle de bus et de route essayant d'accéder à la route dans le bus mais obtient une erreur

Propriété non définie: STDCLASS :: $ Route P> BlockQuote>

Contrôleur: P>

class Route extends Model
{

    protected $table = 'route';
    public $primaryKey = 'id';
    public $timestamp = true;

    public function bus(){

        return $this->belongsToMany(Bus::class , 'bus_route' , 'route_id' , 'bus_id');
    }


4 commentaires

Comment avez-vous obtenu le bus $ var? semble que vous utilisiez directement le constructeur de requêtes au lieu d'éloquent


$ Bus = dB :: table ('bus') -> où ("transport_company_id", $ tend) -> get (); J'ai utilisé ceci


@Usuma khan .. oui, c'est la raison .. Voir Ce


Donc, au lieu de la requête DB, utilisez l'approche modèle comme ceci: $ bus = bus :: Où ("transport_company_id ', $ tend) -> get ();


3 Réponses :


1
votes

Vous utilisez directement la requête Builder directement et n'utilisez pas Eloquent pour effectuer votre requête.

Pour utiliser le modèle: P>

$buses = Bus::where('transport_company_id', $tld)->get();


1 commentaires

Pas de problème, et comme mentionné dans d'autres réponses, vous voudrez vouloir charger la relation pour l'efficacité. bus :: avec (itinéraire ') -> .....



0
votes

Mieux vaut utiliser Eloquent avec la relation.

$ bus = bus :: with (itinéraire ') -> où (' transport_company_id ', $ tend) -> get ();


0 commentaires

0
votes

Tout d'abord, vous utilisez le Builder de requête au lieu de Eloquant , de sorte que vos objets ne seront pas lancés aux modèles. Essayez cela à la place:

$buses = Bus::with('route')->where('transport_company_id', $tld)->get();

foreach($buses as $bus)
{
    foreach($bus->route as $route)
    {
        // now you can get the $route instance with the pivot data:
        dd($route->pivot->a_pivot_field);
    }
}


0 commentaires