簡體   English   中英

laravel與雄辯和laravel返回關系

[英]laravel returning relationships with eloquent and laravel

在我的數據庫中,我是一個組織表,該表具有以下關系,

與用戶多對多與客戶多對多與項目一對多

這些關系又具有其他關系,例如項目

與客戶一對一

在我的控制器中,我正在執行以下操作:

    $organisation = Organisation::all();

    $organisation->load('users');
    $organisation->load('clients');
    $organisation->load('teams');
    $organisation->load('projects');

    return Response::json($organisation, 200);

因此,獲取所有組織以及相關數據。

但是,我還想獲得關系的關系,例如獲得與組織具有的每個項目相關的客戶? 我認為做我想做的事會奏效,但顯然沒有。

這是我的模特,

組織,

class Organisation extends Eloquent {

//Organsiation __has_many__ users (members)
public function users()
{
    return $this->belongsToMany('User')->withPivot('is_admin');
}

//Organisation __has_many__ clients
public function clients()
{
    return $this->belongsToMany('Client');
}

//Organisation __has_many__ projects
public function projects()
{
    return $this->belongsToMany('Project');
}

}

專案

類Project擴展了口才{

protected $fillable = [
    'name',
    'description',
    'total_cost',
    'start_date',
    'finish_date',
    'sales_person',
    'project_manager',
    'client_id',
    'organisation_id',
    'user_id'
];

public function organisations()
{
    return $this->belongsToMany('Organisation');
}

public function salesperson() {
    return $this->belongsTo('User', 'sales_person');
}

public function clients() {
    return $this->belongsTo('Client', 'client_id');
}   

}

客戶群

class Client extends Eloquent {

    public function organisations()
    {
        return $this->belongsToMany('Organisation');
    }

    public function users()
    {
        return $this->belongsToMany('User');
    }

    public function projects()
    {
        return $this->hasMany('Project');
    }
}

你有沒有嘗試過:

$organisations = Organisation::with('projects', 'projects.clients')->all();

foreach($organisations as $organisation) {

    foreach($organisation->projects as $project) {

        foreach($project->clients as $client) {

            echo $client->name;

        }             

    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM