Php Laravel 5.3关系返回错误的关系
我想获取公司的设置: Company::whereHas('Company_settings',function($q)use($Company){$q->where('Company_id',$Company->id);})->get() 但它返回的是公司,而不是设置。我做错了什么? 谢谢 与所有模型一起编辑, $companys=Company::with('Company_settings')->get();还返回所有公司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
谢谢 然后要获得设置,您可以执行以下操作:
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
});
公司设置有多对多关系,因此我需要belongToManywhereHas
按关系筛选,以获取公司的设置,您可以使用('Company_settings')->get()代码>将返回公司集合。您可以通过循环访问它们的设置,或者获得第一个设置的示例是$companys->first()->company\u settings
公司设置具有多对多关系,因此我需要belongToManywhereHas
按关系筛选,以获取您将使用的公司的设置('company_settings')->get();
将返回公司的集合。您可以通过循环访问这些公司的设置,或者获取第一个设置的示例是$companys->first()->公司设置
表示您有多对多
关系,请显示使用更多代码。至少两种型号都有。表示您有多对多
关系,请显示使用更多代码。至少两种型号都有。