array_push()期望给定参数1为数组null

时间:2019-01-06 18:38:45

标签: php json laravel-5

我正在尝试使用此控制器代码将表单数据存储到内部JSON文件中

function index() {
  return view('contact_form');
}

function store(Request $request) {

    try {
        // my data storage location is project_root/storage/app/data.json file.
        $contactInfo = Storage::disk('local')->exists('data.json') ? json_decode(Storage::disk('local')->get('data.json')) : [];

        $inputData = $request->only(['name', 'email', 'message','subject']);

        $inputData['datetime_submitted'] = date('Y-m-d H:i:s');

        array_push($contactInfo,$inputData);

        Storage::disk('local')->put('data.json', json_encode($contactInfo));

        return $inputData;

    } catch(Exception $e) {

        return ['error' => true, 'message' => $e->getMessage()];

    }
}

但是它仍然返回此错误

  

array_push()期望参数1为数组null

我确定这是一个非常简单的错误,但我需要一些帮助来纠正它

1 个答案:

答案 0 :(得分:0)

data.json存在,但为空或包含无效的JSON。