【问题标题】:Update Comment in Laravel在 Laravel 中更新评论
【发布时间】:2020-05-03 10:04:37
【问题描述】:

我是 Laravel 的新手,我想在 Laravel 控制器中使用 if 语句。 所以我有一个表单标签,我可以在其中添加 cmets。我想以相同的形式编辑 cmets。 这是我的表单标签:

<form method="post" action="/hotels/{{$id}}" name="review_hotel">
     @csrf
     <div class="form-group">
         <textarea name="comment" id="comment" class="form-control" style="height:100px"
                   placeholder="Write your review"></textarea>
         @error('comment')
             <p class="text-danger">{{$message}}</p>
         @enderror
     </div>
     <input type="submit" value="Submit" class="btn_1" id="submit-review">
</form>

我有一个脚本,在这个脚本的帮助下,我可以在文本区域中添加我想要更改的注释。 在此之后,我不知道如何在我的控制器中更新它。 这是评论控制器:

public function comment(CommentRequest $request, $id)
    {
        $comment = new Comment();
        $comment->object_id = $id;
        $comment->user_id = Auth::id();
        $comment->comment = $request['comment'];
        $comment->save();
        return redirect('/hotels/'.$id);
    }

我想我需要在我的控制器中编写“if”语句,但我不知道如何。 也许有更简单的方法来更新评论?

【问题讨论】:

    标签: laravel insert-update laravel-6


    【解决方案1】:

    在您的模型上 Comment.php 将表单变量标记为可填写

    public $fillable = ['object_id', 'user_id', 'comment'];
    

    然后使用这个模型函数(Eloquent)

    Comment::updateOrCreate(
    [
    'object_id' => ...,
    'user_id' => ...,
    ],
    [
    'object_id' => ...,
    'user_id' => ...,
    'comment' => ...,
    ]
    );
    

    https://laravel.com/docs/5.8/eloquent#other-creation-methods

    【讨论】:

    • 这不允许同一个人在同一对象上使用多个 cmet。可能应该将 ID 发送到控制器。
    • @Hášíl Páůďýál 我如何获取评论 ID 以便知道我想更改什么评论?
    • @FuadFarhadoghlu 传递给 updateOrCreate() 的第一个参数是查询的 where 子句,第二个参数是更新值。通过托马斯提到的这种方法,数据库上的用户只会有一条评论
    • @Thomas 没错!你对我的任务有什么想法吗?
    • 您希望单个用户拥有多个 cmets?还要更新以前的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2018-12-15
    • 2021-02-20
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多