因此,我一直在努力使用Slim Framework 2中的基本口才。这不是我第一个雄辩的问题,但是我希望这个问题能够得到解决,而不像我之前的问题:Using polymorphic relationships in Eloquent to extend model
我正在研究一个简单的化学数据库,用于跟踪我的大学。我有一个带有group_id列的Chemicals表,它与一个名为company的表相关,只有2列,id和company。 chemicals.company_id是引用company.id的外键。
(这个以及其他几个,如房间和位置,最初是作为Enums开始的,但很快就会发现用户需要能够添加它们。编辑DB列以添加枚举显然不是一个实用的想法。)
在化学中我有:
public function company()
{
return $this->hasOne('Lab_Chemicals\Chemical\company');
}
在公司我有:
public function chemical()
{
return $this->belongsTo('Lab_Chemicals\Chemical\chemical');
}
他们都在同一名称空间(Lab_Chemicals \ Chemical),而且他们自己可以做一个
$chemicals = $app->chemical->get();
和
$company = $app->company->get();
并获取正确的列表,以便基本看起来设置正确,但如果我尝试这样做:
$company = chemical::find(1)->company;
我得到了Slim Application Error:
类型:Illuminate \ Database \ QueryException
代码:42S22
消息:SQLSTATE [42S22]:找不到列:1054未知列' company.chemical_id'在' where子句' (SQL:从company
中选择* company
。chemical_id
= 1和company
。chemical_id
不是空限制1)
这让我想到了真正的问题。这不是倒退吗?为什么要在公司寻找chemical_id?我知道这就是它在文档中所说的内容 https://laravel.com/docs/4.2/eloquent#relationships:"请注意,Eloquent根据模型名称假定关系的外键。在这种情况下,假设Phone模型使用user_id外键。"
我希望它能找到chemical.company_id = company.id的公司。我的思维方式存在哪些缺陷,我可以做些什么来使其按预期工作? 感谢