PrevOpNum列有插入Op,但无论如何我希望能够获取$ JobCardNum和$ OpNum对(唯一标识此表中的一行),并找出之前的Op是否已被开始。 为此,我创建了这个函数:
public function scopePrevOpStarted($query, $JobCardNum, $OpNum)
{
$PrevOpNum = $this::GetOp($JobCardNum, $OpNum)->value('PrevOpNum');
return $query->GetOp($JobCardNum, $PrevOpNum)->value('OpStarted');
}
位于我的'JobCardOp'模型中。在我的控制器中,如果我这样做
return JobCardOp::prevOpStarted(3244, 50);
我按预期返回'1'。但是如果我做的话
return JobCardOp::prevOpStarted(3244, 40);
我收到此错误:
Response.php第396行中的ErrorException: 类Illuminate \ Database \ Eloquent \ Builder的对象无法转换为字符串
尝试其他值我推断出当前一个Op的OpStarted列为0时会出现错误,但它适用于1.为什么会发生这种情况? TINYINT中的OpStarted类型。
更新
如果这样做:
public function scopePrevOpNum($query, $JobCardNum, $OpNum)
{
return $query->GetOp($JobCardNum, $OpNum)->value('PrevOpNum');
}
然后这个
return JobCardOp::GetOp($JobCardNum, prevOpNum($JobCardNum, $OpNum))->value('OpStarted');
有效。那么谁知道发生了什么?