【发布时间】:2015-08-24 13:01:46
【问题描述】:
这个问题有点相关 Laravel 5 get name based on ID
以上问题问题解决,完美运行。现在我正在尝试做一些类似但有更多关系的事情。
所以我有一个用户表
id | name | email | departmentId
-------------------------------------------------------
1 | Nick | nick@email.com | 2
-------------------------------------------------------
我还有一个客户表
id | clientName
-----------------
18 | McDonalds
-----------------
所以这些表是直截了当的。然后我有一个项目表
id | projectName | clientId | userId
-------------------------------------------------------
18 | Test Project | 18 | 1
-------------------------------------------------------
所以这个表链接到客户端和用户表。一个项目可以有一个客户和多个用户。所以在 Project.php 我有
public function client()
{
return $this->hasOne('App\Client', 'clientId');
}
public function user()
{
return $this->hasMany('App\user', 'userId');
}
然后在Client.php中
public function project()
{
return $this->belongsTo('App\Project');
}
和 User.php
public function project()
{
return $this->belongsTo('App\Project');
}
所以我认为关系已经建立好了。我在数据库中有一些数据,但是当我尝试查看索引页面时出现错误。
Column not found: 1054 Unknown column 'clients.clientId' in 'where clause' (SQL: select * from `clients` where `clients`.`clientId` = 2 and `clients`.`clientId` is not null limit 1)
我的 mitegations 似乎有正确的名称
$table->integer('clientId')->unsigned()->default(0);
$table->foreign('clientId')->references('id')->on('clients')->onDelete('cascade');
$table->integer('userId')->unsigned()->default(0);
$table->foreign('userId')->references('id')->on('users')->onDelete('cascade');
我显示的信息中是否有任何可能导致此错误的内容?或者还有什么我可以补充的吗?
谢谢
【问题讨论】:
标签: laravel-5