我使用了以下代码:
public function verify($id,$sid)
{
$sfees = sfee::where('student_id', $sid)->first(['mfee_id']);//mfee_id is the column I'm trying to recover
foreach ($sfees as $sfee) {
echo $sfee;
}
问题是它返回三个1.虽然它应该只返回一个。 如果我在foreach之前回显$ sfees,它只返回一个值:{" mfee_id":1}。 问题是什么?任何人都可以帮助我吗?
答案 0 :(得分:0)
你要求一个模型,你不需要尝试迭代它,它是一个模型(对象)。 (first()
可以返回null,所以你应该检查)
$sfees->mfee_id;
如果您只想要该列的值为该记录:
$mfee_id = sfee::where('student_id', $sid)->value('mfee_id');
答案 1 :(得分:0)
您应该使用return
语句从函数返回,而不是echo
。
public function verify($id,$sid)
{
$sfees = sfee::where('student_id', $sid)->first(['mfee_id']);//mfee_id is the column I'm trying to recover
return $some_variable;
}
答案 2 :(得分:0)
你的问题是你试图在一个模型上进行迭代。这是因为你对属性进行了迭代而你得到了奇怪的结果,唯一认为你需要的是这样做:
public function verify($id,$sid)
{
$sfees = sfee::where('student_id', $sid)->first(['mfee_id']);//mfee_id
echo $sfees->mfee_id;
}
此示例中的 $sfees
是单个模型,而不是模型集合,因为您已使用first
来获取它。