php laravel eloquent 对象无法更改

php laravel eloquent object can not be changed

我有一个奇怪的错误,我不知道为什么它不起作用。所以我正在使用 Laravel php 框架并从 db 获取一个对象。因为一些十进制数看起来像这样:'.00',我想把它改成这个'0',但是当我循环它时它不能改变。 它看起来像这样:

 $stipendien = Stipendium::where('id','=',$request->input('id'))->get()->toArray();


        
        foreach($stipendien as $object => $test)
        {
            foreach($test as $key => $value)
            {
                if($test[$key] == ".00")
                {
                    $test[$key] = "0";
                }
            }
        }
return $stipendien;

当我赋值 new 时不应该更改“$stipendien”吗,因为它确实会转到 if 语句并获得正确的密钥?

array:2 [
  0 => array:17 [
    "id" => 1
    "Kosten_Kurs" => "22.00"
    "Kosten_Prüfung" => ".00"
    "Kosten_Unterlagen" => ".00"
    "Kosten_Lernurlaub" => ".00"
    "Kosten_Reise" => ".00"
    "Kosten_Sonstig" => ".00"

  ]
  1 => array:17 [
    "id" => 2
    "Kosten_Kurs" => "22.00"
    "Kosten_Prüfung" => "2.00"
    "Kosten_Unterlagen" => ".00"
    "Kosten_Lernurlaub" => ".00"
    "Kosten_Reise" => ".00"
    "Kosten_Sonstig" => ".00"
  ]
]

但是当我return它时,它根本没有改变。我在这里做错了什么?

通过添加 dd() 或 die 来检查您的条件是否匹配 if

if($test[$key] == ".00")
{
   $test[$key] = "0";
}

您可以在分配 0 时尝试在循环中使用它

 $stipendien[$object][$key] = "0";