“从空值创建默认对象”

时间:2019-12-17 07:28:06

标签: laravel eloquent

我正在尝试将数据插入数据库,但是收到错误"Creating default object from empty value",但仍然不明白,该错误来自何处?

在我的控制器中

public function store(Request $request)
    {
        $request->validate([
            'amount' => 'required',
            'method' => 'required',
        ]);
        $payrolls = new Payroll();
        $payrolls->employee_id = auth()->user()->id;
        $payrolls->account_id = auth()->user()->id;
        $payrolls->employee_name = $request->get('employee_name');
        $payrolls->description = $request->get('description');
        $payrolls->account = $request->get('account');
        $payrolls->amount = $request->get('amount');
        $payrolls->method = $request->get('method');
        $payrolls->save();
        return response()->json(['created' => true]);
    }

有帮助吗?谢谢...

1 个答案:

答案 0 :(得分:0)

正如@arm所说,您的代码中有一个错字,这会导致您得到错误。
下面的代码应该可以使其正常工作。
我还建议您使用$request->input('****');代替动态变量,就像您在做$request->account;

public function store(Request $request)
{
    $request->validate([
        'amount' => 'required',
        'method' => 'required',
    ]);

    $payrolls = new Payroll();
    $payrolls->employee_id = auth()->user()->id;
    $payrolls->account_id = auth()->user()->id;
    $payrolls->employee_name = $request->input('employee_name');
    $payrolls->description = $request->input('description');
    $payrolls->account = $request->input('account');
    $payrolls->amount = $request->input('amount');
    $payrolls->method = $request->input('method');
    $payrolls->save();

    return response()->json(['created' => true]);
}

您还可以查看Payroll::create(),它可以更轻松地在数据库中创建条目,而不是创建new Payroll()并在最后进行保存。 https://laravel.com/docs/5.7/eloquent#mass-assignment

相关问题