Laravel Eloquent 获取与数据透视表中的值匹配的关系

艾丁·布鲁特

我需要获得必须与存储在数据透视表中的值匹配的模型,但不幸的是我无法获得解决方案。

这是我的架构

PEROPERTY TABLE
id


FILTER TABLE
id

FILTER_OPTION TABLE
id
filterId

FILTER_OPTION_TRANSLATE TABLE
optionId
languageId
title

PROPERTY_FILTER TABLE
propertyId
filterId
optionId

我想做的是:

@foreach($property->filters as $filter)
  {{ $filter->option->translate->title }}
@endforeach

但这里对我来说问题是如何说获取选项匹配 PROPERTY_FILTER TABLE 中的 optionId

我的模型:

PROPERTY MODEL
public function filters()
{
  return $this->belongsToMany(Filter::class, 'PROPERTY_FILTER','propertyId','filterId');
}

FILTER MODEL
public function option()
{
  return $this->hasMany(Filter_Option::class, 'filterId');
}

FILTER OPTION MODEL
public function translate()
{
    return $this
    ->hasOne(Filter_Option_Translate::class, 'optionId')
    ->where('langId', currentLanguage()->langId);
}

我希望我能得到一些帮助,从现在开始谢谢。

艾丁·布鲁特

我通过使用数据透视表作为分离模型解决了我的问题。

我试图通过数据透视表获得 3 级远关系,但即使是中间模型也无法解决我的问题,我只是尝试了一个单独的模型。

首先,我创建了表示 property_filter 数据透视表的 Property_Filter 模型,并添加了过滤器和选项方法,如下所示:

public function filter()
{
    return $this->belongsTo(Filter::class, 'filterId');
}

public function option()
{
    return $this->belongsTo(Filter_Option::class, 'filterValue');
}

然后转换过滤器关系方法

public function filters()
{
  return $this->belongsToMany(Filter::class, 'PROPERTY_FILTER','propertyId','filterId');
}

public function filters()
{
    return $this->hasMany(Property_Filter::class,'propertyId');
}

现在我到达为迭代过滤器选择的过滤器和选项,如下所示:

@foreach($properties as $property)
  @foreach($property->filters as $filter) // here i get filters chosen for iterated property
    <span class="caption">{{ $filter->filter->translate->entryTitle }}</span> // here i get iterated filters title (translated)
    <span class="value">{{ $filter->option->translate->entryTitle }}</span> // here i get chosen option for iterated filter not all options belognsto iterated filter
  @endforeach
@endforeach

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel Eloquent - 数据透视表

来自分类Dev

Laravel 3 表 Eloquent:关系

来自分类Dev

Laravel Eloquent 连接表关系

来自分类Dev

在Laravel Eloquent中获取和过滤关系

来自分类Dev

Laravel Eloquent 关系

来自分类Dev

Laravel eloquent 模型关系

来自分类Dev

如何通过数据透视表上的关系计数进行排序-Laravel 4 / Eloquent

来自分类Dev

Laravel Eloquent - 从关系中检索数据

来自分类Dev

Laravel Eloquent:在Eloquent中获取联接表的ID字段

来自分类Dev

Laravel 5:如何使用Eloquent查询数据透视表

来自分类Dev

如何使用Laravel Eloquent从多个表中获取数据

来自分类Dev

Laravel Eloquent-仅当数据与一对多关系匹配时才获取数据

来自分类Dev

在Laravel Eloquent中查询关系内的关系

来自分类Dev

如何在Laravel 5中使用Eloquent更新数据透视表

来自分类Dev

Laravel Eloquent ManyToMany with Pivot,带有数据透视表中变量的辅助查询?

来自分类Dev

Laravel Eloquent 模型之间的关系

来自分类Dev

Laravel Eloquent "with" 返回与 limit 的关系

来自分类Dev

获得 Laravel eloquent 模型关系

来自分类Dev

Laravel Eloquent的表命名约定hasManyThrough关系

来自分类Dev

Laravel Eloquent的表命名约定hasManyThrough关系

来自分类Dev

Laravel Eloquent获取JSON关系嵌套

来自分类Dev

Laravel Eloquent获取JSON关系嵌套

来自分类Dev

从Laravel Eloquent获取特定的列

来自分类Dev

如何在 Laravel 中定义 Eloquent 关系

来自分类Dev

使用关系选择 Laravel Eloquent 中的字段

来自分类Dev

Laravel:在Eloquent中解码JSON

来自分类Dev

Laravel Eloquent获取比较正确的数据

来自分类Dev

Laravel Eloquent:获取相关表的值而不是外键

来自分类Dev

laravel 5.6 Eloquent:eloquent 关系模型创建问题

Related 相关文章

热门标签

归档