如何使用php刀片显示SQL表的特定数据
我有一个程序,其中一个用户被分配到一个项目,其中有图像和文本 显然,在这个程序中,用户可以看到分配给他的项目,也可以看到项目的文本和图像 但我有一个问题,如果一个用户有两个项目,当他查找一个项目时,他会看到这两个项目的数据,如下图所示: 如您所见,它同时显示文本1和文本2,分别是“Cambio 3”和“Cambio 1”,但是,它应该只显示第一个文本。我的代码是: index_proyecto_blade.php如何使用php刀片显示SQL表的特定数据,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我有一个程序,其中一个用户被分配到一个项目,其中有图像和文本 显然,在这个程序中,用户可以看到分配给他的项目,也可以看到项目的文本和图像 但我有一个问题,如果一个用户有两个项目,当他查找一个项目时,他会看到这两个项目的数据,如下图所示: 如您所见,它同时显示文本1和文本2,分别是“Cambio 3”和“Cambio 1”,但是,它应该只显示第一个文本。我的代码是: index_proyecto_blade.php Textos @foreach($usario\u proyecto作为$us
Textos
@foreach($usario\u proyecto作为$usr\u prt)
@foreach(项目数据为$prt)
@foreach($texto_数据为$txt)
@foreach($texto_proyecto_数据为$txt_prt)
@如果($txt\u prt->id\u texto\u data==$txt->id)
@如果($txt\u prt->id\u proyecto\u data==$prt->id\u proyecto)
@如果($usr\u prt->id\u proyecto==$prt->id\u proyecto)
Id de texto:{{$txt->Id}
{{$txt->caption}
{{$txt->texto}
@恩迪夫
@恩迪夫
@恩迪夫
@endforeach
@endforeach
@endforeach
@endforeach
以下是正在使用的表格:
Usuario_Proyecto(用户与项目之间的关系)
Proyecto_数据(原始项目的克隆)
Texto_数据(与项目关联的文本克隆/与Proyecto_数据关联的文本)
Texto_Proyecto_数据(Texto_数据和Proyecto_数据之间的关系)
我之所以使用克隆,是因为用户可以编辑他们的项目版本
我确保(至少我认为)只有当文本的proyecto_id与proyect和user中的id相同时,程序才会显示数据。但它仍然显示了其他项目的文本
为什么会这样?我做错了什么?文件名不对
index.blade.php
在控制器中,返回视图,如returnview('proyecto.index')代码>;基本上folder.file
始终命名文件xxx.blade.php
希望有帮助。您不想获取所有数据并在视图中“过滤”它们。首先,在模型之间建立适当的关系。@Hugo,你能分享控制器吗?我认为你把事情复杂化了。使您的模型简单,并依赖它们之间的关系。您从这两个项目中获取数据的原因是所有这些foreach循环。用户有2个项目,所以您将检查这两个项目的条件。然后你就有了不相关的texto_数据,这是两个对象。其中一个包括一个texto_proyecto_数据的条件,第二个包括第二个texto_proyecto_数据的条件。这就是为什么你们两个都得到了。保持你的模型和关系简单,不要使事情过于复杂。在视图中只包含您需要的数据,而不是所有内容。@Filip是的,我做到了。基本上为用户创建了另一个视图(普通用户和管理员都在同一个视图中,尽管他们使用不同的功能和项目版本(用户有克隆版本,管理员有原始版本))并且工作正常!!!谢谢你的想法!!!
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::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::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,
},
],
}
index.blade.php