Php Laravel 5.3关系返回错误的关系

Php Laravel 5.3关系返回错误的关系,php,laravel,relation,Php,Laravel,Relation,我想获取公司的设置: Company::whereHas('Company_settings',function($q)use($Company){$q->where('Company_id',$Company->id);})->get() 但它返回的是公司,而不是设置。我做错了什么? 谢谢 与所有模型一起编辑, $companys=Company::with('Company_settings')->get();还返回所有公司 谢谢 然后要获得设置,您可以执行以下操作: class Compa

我想获取公司的设置: Company::whereHas('Company_settings',function($q)use($Company){$q->where('Company_id',$Company->id);})->get()

但它返回的是公司,而不是设置。我做错了什么? 谢谢

与所有模型一起编辑, $companys=Company::with('Company_settings')->get();还返回所有公司


谢谢

然后要获得设置,您可以执行以下操作:

class Company extends Model
{
 public function company_settings()
{
    return $this->belongsToMany('CompanySetting');
}

}

class SettingsGroup extends Model
{
public $table = 'settings_groups';

public function comapanySettings() {

    return $this->hasMany('CompanySetting');
}
}

 class CompanySetting extends Model
{
public function groups () {

    return $this->belongsToMany('SettingsGroups');

}

public function company_settings()
{
    return $this->belongsToMany('Company');
}

}
然后访问第一家公司的设置:

$companies = Company::with('settings')->get();
由于这将返回一个集合,因此您可以使用所有集合方法:

要循环浏览它们,您可以执行以下操作:

$companies ->first()->company_settings;

然后,要获取设置,您可以执行以下操作:

class Company extends Model
{
 public function company_settings()
{
    return $this->belongsToMany('CompanySetting');
}

}

class SettingsGroup extends Model
{
public $table = 'settings_groups';

public function comapanySettings() {

    return $this->hasMany('CompanySetting');
}
}

 class CompanySetting extends Model
{
public function groups () {

    return $this->belongsToMany('SettingsGroups');

}

public function company_settings()
{
    return $this->belongsToMany('Company');
}

}
然后访问第一家公司的设置:

$companies = Company::with('settings')->get();
由于这将返回一个集合,因此您可以使用所有集合方法:

要循环浏览它们,您可以执行以下操作:

$companies ->first()->company_settings;

您无法在此查询中与
设置建立关系
whereHas()
的工作原理与has()基本相同,但允许您为要检查的相关模型指定其他过滤器

试试这个:

$companies->each(function($company) {
    $company->company_settings;
    // Your logic here
});

您无法在此查询中与
设置建立关系
whereHas()
的工作原理与has()基本相同,但允许您为要检查的相关模型指定其他过滤器

试试这个:

$companies->each(function($company) {
    $company->company_settings;
    // Your logic here
});

公司设置有多对多关系,因此我需要belongToMany
whereHas
按关系筛选,以获取公司的设置,您可以使用('Company_settings')->get()将返回公司集合。您可以通过循环访问它们的设置,或者获得第一个设置的示例是
$companys->first()->company\u settings
公司设置具有多对多关系,因此我需要belongToMany
whereHas
按关系筛选,以获取您将使用的公司的设置('company_settings')->get();
将返回公司的集合。您可以通过循环访问这些公司的设置,或者获取第一个设置的示例是
$companys->first()->公司设置
表示您有
多对多
关系,请显示使用更多代码。至少两种型号都有。表示您有
多对多
关系,请显示使用更多代码。至少两种型号都有。