【问题标题】:Array can't pass to blade. What should I do?数组无法传递给刀片。我该怎么办?
【发布时间】:2021-10-10 04:40:27
【问题描述】:

我想将一个数组传递给刀片模板。 但不知何故,数组总是在刀片中变为空。 我不知道我应该修复的地方。

    public function stackover(Request $request)
    {
        $resultList = array();
        $dateListArray = $this->getChargeData($request->id);
        Log::debug($dateListArray);
        foreach($dateListArray as $datelist)
        {
            array_push($resultList,$datelist);
        }
        Log::debug("CHARGELIST");
        Log::debug($resultList);
        return view('stacker',compact($resultList));
    }

在blade.php中

  console.log({{$resultList ?? ''}});

数据变为空。

Log::debug("CHARGELIST");
Log::debug($chargeList);

结果在这里

 array (
  0 => 
  (object) array(
     'delivery_date' => '2021-08-03 00:00:00',
     'amount' => 10000,
     'cost' => 0,
  ),
  1 => 
  (object) array(
     'delivery_date' => '2021-08-06 00:00:00',
     'amount' => 400,
     'shipping_cost' => 1100,
  ),
  2 => 
  (object) array(
     'delivery_date' => '2021-08-13 00:00:00',
     'amount' => 1100,
     'cost' => 1100,
  ),
)  

【问题讨论】:

  • {{}} 用于输出标量类型而不是复合类型。如果要使用数组,可以console.log(@json($resultList))
  • 要测试php值,使用dd($resultList),不要依赖JS,因为可能会发生一些转换错误。

标签: php laravel laravel-blade


【解决方案1】:

您可以有替代品来获取刀片中的阵列。

return View::make('stacker',$resultList);

compact() 函数用于将给定变量转换为数组,其中数组的键将是变量的名称,数组的值将是变量的值。

return view('stacker',compact('resultList'));

如果你已经有了数组,你可以使用 with() 函数来传递它。

 return view('stacker')->with($resultList);

【讨论】:

    【解决方案2】:

    问题是由于您将$resultList 变量作为值传递给compact 函数,而不是将变量名称作为字符串传递`

    return view('stacker',compact($resultList));
    

    你应该像这样改变上面的行来解决这个问题

    return view('stacker',compact('resultList'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      相关资源
      最近更新 更多