Php Laravel通过多对多关系获得链接模型
我有几个类,它们之间的关系如下:Php Laravel通过多对多关系获得链接模型,php,laravel-5,Php,Laravel 5,我有几个类,它们之间的关系如下: class ProductModel extends Model { function values() { return $this->belongsToMany('App\Models\ParameterValue', 'model_values', 'model_id', 'value_id'); } } class ParameterValue extends Model { function pa
class ProductModel extends Model
{
function values()
{
return $this->belongsToMany('App\Models\ParameterValue', 'model_values', 'model_id', 'value_id');
}
}
class ParameterValue extends Model
{
function parameter()
{
return $this->belongsTo('App\Model\Parameter');
}
}
class Parameter extends Model
{
public $timestamps = false;
function values()
{
return $this->hasMany('App\Models\ParameterValue');
}
}
我想要实现的是,通过ParameterValue
实体从ProductModel
类中获取所有Parameter
实体。是否有任何方法可以实现这一点,而不必遍历所有值并按参数\u id
对它们进行分组?我想实现这样的目标:
class ProductModel extends Model
{
function values()
{
return $this->belongsToMany('App\Models\ParameterValue', 'model_values', 'model_id', 'value_id');
}
function parameters()
{
/** A list of App\Models\Parameter entities that corresponds to the model via values */
return ???;
}
}
另外,很抱歉,我犯了一个错误,参数值属于
参数,而不是hasOne
从
“has many through”关系为通过中间关系访问>远程关系提供了方便的捷径
像这样的更新了一个问题以更好地理解问题。不,它不是这样工作的,这类似于belongTornyThrough
,但在Laravel中没有这样的方法。在ParameterValue模型中还需要一个方法,因为它属于多个ParameterModel。
class ProductModel extends Model
{
function parameters()
{
return $this->hasManyThrough('App\Models\Parameter', 'App\Models\ParameterValue');
}
}