首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改Laravel中的DB列值

更改Laravel中的DB列值
EN

Stack Overflow用户
提问于 2018-10-13 02:55:44
回答 2查看 162关注 0票数 0

我有一个功能,我可以接受投标,当我接受一个投标,其他投标相同的项目,得到一个反向更新。

解释

代码语言:javascript
复制
bid 1 -> accept = y
[bid 2, bid 3, ....] -> accept = r

到目前为止,我只能更改bid 1状态,但是bid 2, 3...不知道如何获得它们。

图像

这是我的当前代码,它更改bid 1状态(接受列).

代码语言:javascript
复制
public function bidaccepted(Request $request, $id)
{
    $bid = Bid::findOrFail($id);
    $bid->accepted = 'y';
    $bid->save();
}

叶片

代码语言:javascript
复制
<a href="{{route('bidaccepted', $bid->id)}}" class="text-success"><i class="fa fa-check"></i> Accept This Bid</a>

路由

代码语言:javascript
复制
Route::get('/bidaccepted/{id}', 'Front\BidChatController@bidaccepted')->name('bidaccepted');

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-10-13 04:31:33

首先,与你的问题无关,我会建议你遵循PSR的惯例,投标应该是bidAccepted。

至于你的问题:

代码语言:javascript
复制
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']);
}

我不太喜欢你选择代表你的数据和项目接受投标的方式,我也不是我的解决方案的忠实粉丝:)但是关于你的问题,我的答案应该是工作的。

票数 0
EN

Stack Overflow用户

发布于 2018-10-13 06:58:59

为什么不这样做呢

在表迁移中,为接受为null的列添加一个默认值。

当一个出价被接受时,将接受出价的列更新为y,而rest (其中接受= null)自动被视为不接受。

如果您想要更改接受状态,您必须将旧出价的已接受列状态更改为null,然后将新列状态更新为y。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52789118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档