我具有可以接受出价的功能,当我接受出价时,同一项目的其他出价会进行反向更新。
bid 1 -> accept = y
[bid 2, bid 3, ....] -> accept = r
到目前为止,我只能更改bid 1
的状态,但是bid 2, 3...
我不确定如何获取它们。
代码
这是我当前的代码,它更改了bid 1
状态(已接受的列)...
public function bidaccepted(Request $request, $id)
{
$bid = Bid::findOrFail($id);
$bid->accepted = 'y';
$bid->save();
}
刀片
<a href="{{route('bidaccepted', $bid->id)}}" class="text-success"><i class="fa fa-check"></i> Accept This Bid</a>
路线
Route::get('/bidaccepted/{id}', 'Front\BidChatController@bidaccepted')->name('bidaccepted');
有什么建议吗?
答案 0 :(得分:0)
首先,与您的问题无关,我建议您遵循PSR约定,bidaccepted应该是bidAccepted。
关于您的问题:
public function bidAccepted(Request $request, $id)
{
$bid = Bid::findOrFail($id);
$bid->accepted = 'y';
$bid->save();
// The part you
Bid::where('id', '!=', $id)
->where('project_id', $bid->project_id)
->update(['accepted' => 'n']);
}
我不是您选择表示数据和项目接受投标的方式的忠实拥护者,我也不是我的解决方案的忠实拥护者:)但是,对于您的问题,我的回答应该起作用。
答案 1 :(得分:0)
为什么不那样做
在表迁移中,为接受为null的列添加默认值
接受出价时;将接受的出价的列更新为y,其余(此处的accepted = null)将被自动视为未接受。
如果要更改接受状态,则必须将旧出价的接受列状态更改为null,然后将新出价更新为y。