【发布时间】:2014-10-18 22:46:54
【问题描述】:
我刚刚开始学习 laravel 及其 orm 系统,Eloquent。我不确定如何正确连接表格。我有 3 个模型:用户、帐户、帐户类型,但我不知道如何使用帐户类型加入帐户。
账户模型类:
public function accounttype(){
return $this->hasOne('AccountType');
}
这是传递帐户信息以供查看:
$accounts = User::find(Auth::user()->id)->accounts;
$accounts->load('accounttype');
return View::make('accounts.accounts')->with('accounts', $accounts);
这将给出以下错误:
SQLSTATE[42S22]:未找到列:1054 'where 子句'中的未知列'accounttypes.account_id'(SQL:select * from accounttypes where accounttypes.account_id in (1, 2, 3) )
它应该是通过 accounttypes 表中的 id 而不是 account_id 提取的。我可以列出用户帐户就好了,我只是不知道如何将帐户类型表加入帐户表。
数据库表:
用户
- 身份证
- 用户名
- 密码
- 时间戳(updated_at / created_at)
帐户
- 身份证
- 姓名
- user_id
- accounttype_id
- 时间戳
帐户类型
- 身份证
- 姓名
每个用户可以拥有多个帐户,每个帐户都有一个帐户类型。
【问题讨论】:
-
这取决于您的
database,显示每个Models 的数据库表。 -
您的
accounts和accounttype是如何关联的?user有多个帐户吗? -
每个用户都有一个或多个帐户,每个帐户都有一个类型。
-
试试
belongsTo而不是hasOne
标签: laravel