2017-08-07 58 views
2

首先请原谅,如果您在阅读所有您认为不清楚的问题或应编辑问题时,请进行编辑,我会接受。Laravel:根据ID传递的查询返回数据我通过URL

路线

Route::get('project/{id}', ['uses' => '[email protected]', 'as' => 'admin.projects.show']); 

我想做

渲染两个表的信息视图会发生什么。

表信息

一台被称为项目,我有这个字段:ID,蛞蝓,秩序,公共,pathheader和pathhome。

第二个表称为project_translation,其中我有这些字段:id,locale,project_id,title,description。

查询问题

我需要一个查询在那里我得到我通过对URL项目的信息。这将是这样的(工作):

$project = Project::find($id); 

我打印带有{{$项目 - >字段名}}

现在,我想用相同的检索翻译的数据的数据项目ID。我是用做它:

$translation = ProjectTranslation::find($id); 

当然不过,回到我的ProjectTranslation的数据与我在URL中传递的ID。

问题

应该如何看,我得到了project_translations的数据与同PROJECT_ID查询?

非常感谢,如果需要更多信息或只是不清楚。请发表评论。

+0

你想要它与连接或不同的查询? – C2486

+0

我更喜欢两种方式。总是很好的学习新方法。 –

回答

2

刚上ProjectTranslation使用$id找到的所有记录与project_id等于$id像这样:

$translation = ProjectTranslation::where('project_id',$id)->get(); 

如果你只是有一个ProjectTranslation记录,那么你就可以得到这样的:

$translation = ProjectTranslation::where('project_id',$id)->first(); 

希望你能理解。

+0

它成功了。谢了哥们。也许在这几天我会有更多关于查询的问题。如果您有兴趣,请关注我的个人资料。 –

+0

@LluísPuigFerrer恭喜你有解决方案,如果有任何问题随时问:D:D –

+0

嗨@SagarGautam你在这里?也许你可以帮我 –

3

试着这样做:

$project = Project::find($id); 
$translation = ProjectTranslation::where('project_id', $id)->first(); 

做,在控制器,然后你可以将这些数据传递给视图:

return view('sample', ['project' => $project, 'translation' => $translation]); 
+0

完美@Marcin非常感谢您的快速回答。当你这样做:'where('project_id',$ id)'你正在比较project_id字段和你传递的URL的URL是否为真?可以这样做:'$ translation = ProjectTranslation :: where($ id,$ project-> id);'?将$ id与项目表的id值进行比较?谢了哥们! –

+0

该函数为您提供了所有数据库条目,其中字段'project_id == $ id',然后您可以使用 - > get()获取条目数组,或者 - > first()如果您想获取第一个匹配值。 – Marcin

+0

其实我有两个翻译为每个项目。所以应该看起来像:'$ translation = ProjectTranslation :: where('project_id',$ id) - > get();'?所以我需要做一个foreach。 –