“从空值创建默认对象”

问题描述 投票:1回答:1

我正在尝试将数据插入数据库,但收到错误"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]);
    }

有帮助吗?谢谢......

laravel eloquent
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.