【发布时间】:2013-06-03 10:17:37
【问题描述】:
这个问题与 Laravel 有关,但也与一般数据库设计有关,因为我对这两者都是新手。
我做了一个这样的数据库:
人
- 身份证
- 名字
- 姓氏
- 地址
- yadayada
地址
- id
- 第一行
- 城市
- 状态
- 压缩包
- yadayada
有一个“人”,它可以有一个地址。我之所以这样拆分,是因为公司(此应用程序的另一部分)也将有地址,以及会面地点和 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”是一般的良好数据库习惯吗?在这种情况下,我可以重命名并且问题将得到解决
感谢您的帮助。
【问题讨论】:
-
附注:Eloquent 会让您在这里的生活更轻松。
-
@Mike-Anthony 我对 Laravel 很陌生,但我认为我正在使用 eloquent。这是我的控制器'代码' $people = DB::table('people') ->join('address', 'address.address_id', '=', 'people.address') ->get();返回视图::make('people.index') ->with('people', $people); '/代码'
标签: database-design data-binding laravel laravel-4