返回laravel中的所有关系数据

我想使用雄辩的模型检索数据并在以下json响应中返回它。

user[
     transactions[],clients[
            ubications[],contactos[],plans[],]
]


目前,我正在接收用户,交易和客户数据,但无法在客户属性(例如ubications [],contactos []和plans [])内检索数据。因此,我已经在子属性方面需要帮助实现了关系。

这是我正在使用的模型
User.php

class User extends Authenticatable
{
    use Notifiable,HasApiTokens;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'username','email','password',];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password','remember_token',];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',];
    public function token(){
        return $this->access_token;
    }
    public function transaction(){
        return $this->hasMany(Transaction::class);
    }
    public function plan(){
        return $this->hasManyThrough(Plan::class,Client::class);
    }
    public function ubication(){
        return $this->hasManyThrough(Ubicacion::class,Client::class);
    }
    public function contacto(){
        return $this->hasManyThrough(Contacto::class,Client::class);
    }
    public function client(){
        return $this->hasMany(Client::class);
    }
}

Client.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Client extends Model
{
    protected $fillable=[
        'nombre','ruc','status','user_id'
    ];

    public function contacto(){
        return $this->hasMany(Contacto::class);
    }
    public function feedback(){
        return $this->hasMany(Feedback::class);
    }
    public function plan(){
        return $this->hasMany(Plan::class);
    }
    public function ubication(){
        return $this->hasMany(Ubicacion::class);
    }
    public function user(){
        return $this->belongsTo(User::class);
    }
}

lcy0851 回答:返回laravel中的所有关系数据

您可以使用嵌套数据急切加载: Laravel Documentation Eager Loading

$user = User::find(1)
   ->with('clients','clients.contacto','clients.ubications','clients.plans')
   ->get();
本文链接:https://www.f2er.com/3139864.html

大家都在问