Home > Net >  Get data from another model
Get data from another model

Time:08-29

$objects = Objects::where("id_host", $hostId)
    ->orderBy("id", "desc")
    ->get();

In the collection , each object has a type_id field . How can I use this field to get a record in another model and mix them into this object in the response

CodePudding user response:

First thing is first, in order to show the relationship between the records, you'll need to set up a One-to-Many/Many-to-One relationship. This allows you to readily call those relationships from within Laravel and to load them together.

Without being able to see your Type and Object classes, I really can't give specific advice on this, but it should look something like this:

Objects

public function type(): BelongsTo
{
    return $this->belongsTo(Type::class);
}

** Type **

public function objects(): HasMany
{
    return $this->hasMany(Objects::class);
}

Once you've done that, you can add a with(...) call to your Eloquent query to eager load the relationship.

$objects = Objects::where("id_host", $hostId)
    ->orderBy("id", "desc")
    ->with('type')
    ->get();

Alternatively, if you don't want to eager load it for some reason, you can call $object->type to get the Type object.

  • Related