Database design 使用内部联接获取Laravel刀片模板中的数据库信息
这个问题与Laravel有关,但也与一般数据库设计有关,因为我对这两个方面都不熟悉 我制作了一个如下的数据库:Database design 使用内部联接获取Laravel刀片模板中的数据库信息,database-design,data-binding,laravel,laravel-4,Database Design,Data Binding,Laravel,Laravel 4,这个问题与Laravel有关,但也与一般数据库设计有关,因为我对这两个方面都不熟悉 我制作了一个如下的数据库: <a href="{{ URL::to('people/' . $people->address) }}" class="thumbnail"> 人 身份证 名字 姓氏 地址 叶田田 地址 id 第1行 城市 陈述 拉链 叶田田 有一个“人”,它可以有一个地址。我之所以这样拆分,是因为公司(这个应用程序的另一部分)也会有地址,会议地点
<a href="{{ URL::to('people/' . $people->address) }}" class="thumbnail">
人
- 身份证
- 名字
- 姓氏
- 地址
- 叶田田
- id
- 第1行
- 城市
- 陈述
- 拉链
- 叶田田
@foreach ($people as $people)
<li>
<a href="{{ URL::to('people/' . $people->id) }}" class="thumbnail">
<img src="" />
</a>
<div class="caption">
<p>
{{ $people->firstname }}<br />
{{ $people->lastname }}<br />
{{ $people->line1 }}<br />
{{ $people->city }}<br /><br />
</p>
</li>
@endforeach
@foreach($people as$people)
{{$people->firstname}}
{{$people->lastname}}
{{$people->line1}}
{{$people->city}}
@endforeach
它返回非常疯狂的结果,因为它不知道使用哪个“id”。(它使用的是地址表的id,结果很奇怪)
谢谢您的帮助。您可以随时重命名id字段,但这不是必需的。可以使用SELECT查询指定列。例如,选择address.id作为address\u id,people.id作为people\u id。这种方法的缺点是您需要指定每个列名。对于我在DB design and join子句中看到的内容,
people
表(people.address
)的address
列包含address
表的id
如果是这样,您可以在刀片视图中使用people.address
,如下所示:
<a href="{{ URL::to('people/' . $people->address) }}" class="thumbnail">
顺便说一句:雄辩会让你的生活更轻松。@Mike Anthony我对Laravel很陌生,但我想我正在使用雄辩。这是我的控制器'code'$people=DB::table('people')->join('address','address.address_id','=','people.address')->get();返回视图::make('people.index')->带有('people',$people);'/代码'我最后查看了一些其他资源,他们建议我有两个字段:地址id映射到字段地址,人员id映射到字段人员。有点烦人,但我认为数据库设计更好。这不起作用。但我最终重命名了这些列,以便使用映射到“address”列的“address\u id”。我没有尝试左连接,尽管它可能更好。我将不得不研究一下连接——MySQL的可怕部分,因为我还没有完全掌握它们。你可以看看这个
<a href="{{ URL::to('people/' . $people->address) }}" class="thumbnail">
$people = DB::table('people') ->leftJoin('address', 'address.id', '=', 'people.address') ->get();