gpt4 book ai didi

php - Laravel 5.4 firstOrCreate 或 firstOrNew 如果唯一只是 id

转载 作者:行者123 更新时间:2023-11-29 03:21:33 25 4
gpt4 key购买 nike

<分区>

我正在做我的小项目,但遇到了问题。学习 Laravel 很有趣,按照 Laravel 团队想要的方式编写代码也很有趣,但有时我觉得我的思维太狭隘,无法解决不该解决的问题。

阅读文档后 - 对我来说,一般来说,firstOrCreate 或 firstOrNew 函数是相同的。因此,据我了解,我可以创建一个函数来处理插入和更新函数。到目前为止,一切都很好。但如果“bill_id”不存在,我在插入时遇到问题。

例如在我的 route

Route::post('/bill/save/', 'BillsController@saveBill');

在我的 BillsController 中

public function saveBill(Request $request)
{

$bill = Bills::firstOrNew(['id' => $request->bill_id]);
$bill->client_id = $request->client_id;
...
$bill->save();
return redirect('admin/clients/'.$request->client_id);
}

我在 View 中所做的是创建一个名为 bill_id 的隐藏字段,并从数据库中获取该 bill_id。

{!! Form::text('bill_id',$data['id'], ['hidden']) !!}

在我创建新账单的 View 页面中 - bill_id 输入字段仍然存在但值为空。

{!! Form::text('bill_id','', ['hidden']) !!}

因为 bill_id 是空的,所以我得到了错误。

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for > column 'id' at row 1

我相信学习框架很好,但有时很难找到正确的方法来编写好的代码,有时对我来说它变成了 hackish 的做事方式。只有经过一些更新和几个小时的学习,我才意识到如何编写代码才是正确的方法。但是这次我只是找不到方法如何传递空的 bill_id 并使 Controller 将数据插入数据库,如果 bill_id 存在,它只更新表

我认为正常的 php if else 语句在这种情况下是不正确的。必须有正确的乳清才能做到这一点。

使用插入和更新函数一切正常,但在 firstOrCreate 或 firstOrNew 函数中我找不到正确的方法。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com