当值为0时,无法从列获取值

时间:2016-07-29 11:31:25

标签: php mysql laravel-5.2

看一下我数据库中表格的这一部分: enter image description here

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');

有效。那么谁知道发生了什么?

0 个答案:

没有答案