这个问题与 Laravel 有关,但也与一般数据库设计有关,因为我对两者都是新手。
我做了一个这样的数据库:
人们
- ID
- 名
- 姓
- 地址
- 亚达达
地址
- ID
- 第1行
- 城市
- 状态
- 压缩
- 亚达达
有一个“人”,它可以有一个地址。我之所以这样拆分,是因为公司(此应用程序的另一部分)也将有地址,以及会面地点和 POI 也将有地址。我正在构建一个 CRM 类型的系统。现在,我需要从数据库中检索信息。但是有一个问题,因为有 2 列名为“id”。
我的内部连接如下。它有效: $people = DB::table('people') ->join('address', 'address.id', '=', 'people.address') ->get();
return View::make('people.index')
->with('people', $people);
但是当我转到我的 Laravel Blade 模板时,一切正常,Inner Join 成功并显示数据,但我需要创建一个 Resourceful Controller 链接,该链接链接到 ID,以便可以在其自己的页面上查看它:
@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
这会返回非常疯狂的结果,因为它不知道要使用哪个“id”。(它使用了地址表的 id,结果很奇怪)
有没有办法在 Laravel 中指定表名?(这不起作用):
<a href="{{ URL::to('people/' . $people->people.id) }}" class="thumbnail"> <img src="" /> </a>
或者在两个不同的表中不使用“id”是一般的良好数据库实践吗?在这种情况下,我可以重命名并且问题将得到解决
谢谢您的帮助。