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'); }
3 Réponses :
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();
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 ') -> ..... code>
Mieux vaut utiliser Eloquent avec la relation. P>
$ bus = bus :: with (itinéraire ') -> où (' transport_company_id ', $ tend) -> get (); code> p> p> p>
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); } }
Comment avez-vous obtenu le bus
$ code> 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 ();