Php 能言善辩的人有很多缺点';负载收集

Php 能言善辩的人有很多缺点';负载收集,php,sql,laravel,eloquent,Php,Sql,Laravel,Eloquent,我对eloquent比较陌生,在使用eloquent作为数据库层的应用程序中,从hasMany关系加载数据时遇到问题。我的(简化)代码如下: 使用illumb\Database\elount\Model; 类答案扩展模型{ 受保护的$table='answer'; public$timestamps=false; public$incrementing=false; 受保护的$fillable=[ “书呆子”, “邀请书”, “不吃”, “价格”, “已付”, “出席”, “拒绝”, ]; 公共

我对eloquent比较陌生,在使用eloquent作为数据库层的应用程序中,从hasMany关系加载数据时遇到问题。我的(简化)代码如下:

使用illumb\Database\elount\Model;
类答案扩展模型{
受保护的$table='answer';
public$timestamps=false;
public$incrementing=false;
受保护的$fillable=[
“书呆子”,
“邀请书”,
“不吃”,
“价格”,
“已付”,
“出席”,
“拒绝”,
];
公共功能打顶(){
返回$this->hasMany(AnswerTopping::class,'answerid');
}
}
类应答扩展模型{
受保护的$table='吃';
public$timestamps=false;
受保护的$fillable=[
“回答”,
“toppingid”,
“添加”
];
公共职能部门答覆(){
返回$this->belongsTo(答案::class);
}
}
SQL模式如下所示

CREATE TABLE `answer` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nerdid` int(11) NOT NULL,
  `invitationid` int(11) NOT NULL,
  `eatingno` tinytext,
  `price` float NOT NULL,
  `haspaid` tinyint(4) NOT NULL,
  `attending` tinyint(1) NOT NULL DEFAULT '0',
  `noeating` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2119 DEFAULT CHARSET=utf8;
CREATE TABLE `eating` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `answerId` int(11) NOT NULL,
  `toppingid` int(11) NOT NULL,
  `add` tinyint(4) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=280 DEFAULT CHARSET=utf8;
然后,我执行以下查询:

$answer=answer::with('topping')->find(32);
返回$answer->toJson());
这将产生如下所示的json

{“id”:32,“nerdid”:1,“invitationid”:54,“eatingno”:“51”,“price”:60,“haspayed”:1,“atting”:2,“noeating”:0,“topping”:[]}
原始SQL查询向我显示,关系中确实有数据,因此它应该在“topping”中返回更多数据

更新 检查mysql中的sql查询(将其设置为日志记录),我发现它实际上对数据库执行了预期的查询:

select * from `answer` where `answer`.`id` = 32 limit 1;
select * from `eating` where `eating`.`answerid` in (32);

手动执行SQL在表中给了我2个条目。但是他们没有出现在上面的“答案”json上。

找到了罪犯。。“eating”表的db模式使用了
answerId
(大写I),而hasMany中的关系使用了
answerId
(小写I),这显然混淆了雄辩


现在我得到了预期的json..

我一眼就看不到任何问题,因此可能需要提供更多代码(和表结构)来检查添加了更多细节的帖子…顺便说一句。底层数据库来自我的项目的一个较老版本,它构建在idiorm之上。但由于白痴或多或少已经死了,我正试图让它和雄辩的人一起工作。