Я возвращаю ExportTemplate
модель:
$exportTemplates = ExportTemplate::where('user_id', Auth::id())->get();
результат примерно такой:
[
{
"id": 45,
"name": "hallo",
"user_id": 1,
"deleted_at": null,
"created_at": "2020-02-27 14:12:50",
"updated_at": "2020-02-27 14:12:50",
"ExportTemplateColumns": [
{
"id": 398,
"export_template_id": 45,
"searchable_column_id": 7,
"created_at": "2020-02-27 14:12:50",
"updated_at": "2020-02-27 14:12:50",
"SearchableColumn": {
"id": 7,
"name": "bic",
"type": "string",
"searchable_table_id": 1,*** I need only results with searchable_table_id ==1
"created_at": "2020-02-06 09:11:24",
"updated_at": "2020-02-06 09:11:30",
"label": "BIC"
}
}
]
},
{
"id": 46,
"name": "fol",
(...)
Я хочу отфильтровать этот результат через Фильтр коллекции, чтобы получить только:
ExportTemplateColumns->SearchableColumn->searchable_table_id == 1
Модели:
class ExportTemplate extends Model
{
protected $appends = ["ExportTemplateColumns"];
public function getExportTemplateColumnsAttribute()
{
return ExportTemplatesColumns::where('export_template_id',$this->id)->get();
}
public function user()
{
return $this->belongsTo(User::class,'id');
}
public function exportTemplatesColumns()
{
return $this->hasMany(ExportTemplatesColumns::class,'export_template_id');
}
}
class ExportTemplatesColumns extends Model
{
protected $appends = ["SearchableColumn"];
public function getSearchableColumnAttribute()
{
return SearchableColumn::find($this->searchable_column_id);
}
public function exportTemplate()
{
return $this->belongsTo(ExportTemplate::class,'id');
}
public function searchableColumn()
{
return $this->belongsTo(SearchableColumn::class,'id');
}
}