更新 Laravel 列中的字段

Posted

技术标签:

【中文标题】更新 Laravel 列中的字段【英文标题】:Update field in a Column on Laravel 【发布时间】:2017-09-28 05:49:18 【问题描述】:

我正在尝试将票证表上的状态更新为值:2。 一旦我可以创建评论......(正在工作......:)),我想将状态更改为 2。

这是我的票模型和以下功能:

 public function addComment($id,$body,$solved)
    

    $this->find($id)->status = 2;
    $this->save();            


    $this->comments()->create([
        'ticket_id' => $id,
        'body' => $body,
        'user_id' => auth()->id()
        ]);

【问题讨论】:

@AmrAly 没用:/ 我不清楚你要什么。听起来您想将票证的 status 更新为 2,但您的代码似乎已经这样做了。当您尝试您现在拥有的东西时,您是否遇到任何错误? 【参考方案1】:

您需要先获取您的对象,然后才能更新它:

public function addComment($id,$body,$solved)
    
$ticket = $this->find($id);
$ticket->status = 2;
$ticket->save();            


$ticket->comments()->create([
    'ticket_id' => $id,
    'body' => $body,
    'user_id' => auth()->id()
    ]);

【讨论】:

不客气 如果您觉得我的回答有用请采纳。【参考方案2】:

尝试像这样更改您的代码。也许这会解决您遇到的问题:

public function addComment($id,$body,$solved)
    
    $ticket = Ticket::find($id);
    $ticket->status = 2;
    $ticket->save();            

    $ticket->comments()->create([
        'ticket_id' => $id,
        'body' => $body,
        'user_id' => auth()->id()
        ]);

【讨论】:

以上是关于更新 Laravel 列中的字段的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 在列中的json / array中保存多个字段值

Laravel 5.4:直接从数据库中的列中减去数字

Laravel 向 json 列中的数组添加一个元素

为啥我不能更新 laravel 中的字段?

如何更新 Laravel 集体中的唯一字段? [复制]

使用 touch() 更新 laravel 中自定义时间戳字段的时间戳