I want use eager-loading to load sources of my relation so I do:
MODEL
public function files()
{
return $this->belongsToMany('App\Files', 'product_files', 'product_id', 'file');
}
Method
Products::with(['files', 'promotion', ... etc.])->where('code', $product)->first();
And I have loaded relations:
#relations: array:7 [▼
"files" => Collection {#762 ▶}
"promotion" => Collection {#755 ▶}
....
but in view still connecting to database: 500 statements were executed, 474 of which were duplicated
Duplicated query
select id from file_entries inner join product_files on file_entries.id = product_files.file where product_files.product_id = '77627'
Where is the problem?
View
@foreach ($filesCategory as $element => $file)
@if (in_array($file->id, $product->files()->pluck('id')->toArray()))
<option selected="selected" value="{{ $file->id }}">@if( $file->name ) {{ $file->name }} @else {{ $file->oryginal_name }} @endif</option>
@else
<option value="{{ $file->id }}">@if( $file->name ) {{ $file->name }} @else {{ $file->oryginal_name }} @endif</option>
@endif
@endforeach