У меня есть программа, в которой пользователь назначен проекту, в котором есть изображения и тексты.
И, очевидно, в указанной программе Пользователь может видеть назначенные ему проекты и, соответственно, тексты и изображения проекта.
Но у меня есть проблема, когда, если у одного пользователя есть 2 проекта, когда он ищет один проект, он видит данные обоих, как вы можете видеть на следующем изображении:
Как видите, он отображает как текст 1, так и 2, которые обозначают «Камбио 3» и «Камбио 1» соответственно, но он должен показывать только первый текст. Код, который у меня есть для этого:
index_proyecto_blade. php
<div class="row pt-4">
<h3>Textos</h3>
@foreach($usuario_proyecto as $usr_prt)
@foreach($proyecto_data as $prt)
@foreach($texto_data as $txt)
@foreach($texto_proyecto_data as $txt_prt)
@if($txt_prt->id_texto_data == $txt->id)
@if($txt_prt->id_proyecto_data == $prt->id_proyecto)
@if($usr_prt->id_proyecto == $prt->id_proyecto)
Id de texto: {{ $txt->id }}
<br>
<div class="col-2">
<h5>{{ $txt->caption }}</h5>
<p>{{ $txt->texto }}</p>
</div>
<br>
@endif
@endif
@endif
@endforeach
@endforeach
@endforeach
@endforeach
</div>
И вот таблицы в игре:
Usuario_Proyecto (отношение между пользователем и проектом )
Usuario_Proyecto::all()
=> Illuminate\Database\Eloquent\Collection {#3061
all: [
App\Usuario_Proyecto {#3069
id: 1,
id_user: 2,
id_proyecto: 1,
created_at: null,
updated_at: null,
},
App\Usuario_Proyecto {#3062
id: 2,
id_user: 2,
id_proyecto: 2,
created_at: null,
updated_at: null,
},
],
}
Proyecto_data (клон исходного проекта)
Proyecto_Data::all()
=> Illuminate\Database\Eloquent\Collection {#3060
all: [
App\Proyecto_Data {#3063
id: 1,
nombre_proyecto: "["proyecto_test"]",
id_proyecto: 1,
created_at: null,
updated_at: null,
},
App\Proyecto_Data {#3058
id: 2,
nombre_proyecto: "["proyecto_test_2"]",
id_proyecto: 2,
created_at: null,
updated_at: null,
},
],
}
Texto_Data (клон текста, связанного с проектом / текстовой привязкой к Proyecto_Data)
texto_data::all()
[!] Aliasing 'texto_data' to 'App\texto_data' for this Tinker session.
=> Illuminate\Database\Eloquent\Collection {#3068
all: [
App\texto_data {#3069
id: 1,
nombre: "["this is a test caption"]",
texto: "["Cambio 3"]",
min: 1,
max: 100,
created_at: null,
updated_at: null,
},
App\texto_data {#3070
id: 2,
nombre: "["palaBRA2"]",
texto: "cambio 1",
min: 1,
max: 100,
created_at: null,
updated_at: null,
},
],
}
Texto_Proyecto_Data (Связь между texto_data и proyecto_data)
texto_proyecto_data::all()
[!] Aliasing 'texto_proyecto_data' to 'App\texto_proyecto_data' for this Tinker session.
=> Illuminate\Database\Eloquent\Collection {#3071
all: [
App\texto_proyecto_data {#3050
id: 1,
id_texto_data: 1,
id_proyecto_data: 1,
created_at: null,
updated_at: null,
},
App\texto_proyecto_data {#3045
id: 2,
id_texto_data: 2,
id_proyecto_data: 2,
created_at: null,
updated_at: null,
},
],
}
Причина, по которой я использую клоны, заключается в том, что пользователь может редактировать свою версию проекта.
Я уверен (я думаю, по крайней мере) что программа показывает данные только в том случае, если proyecto_id текста совпадает с proyecto и user. Но он по-прежнему показывает текст других проектов.
Почему это происходит? Я что-то не так делаю?