首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >laravel 8: axios.post不工作在控制器上

laravel 8: axios.post不工作在控制器上
EN

Stack Overflow用户
提问于 2020-12-16 15:46:53
回答 1查看 743关注 0票数 0

我正在尝试为项目中的博客文章创建一个类似/不喜欢按钮系统。我正在使用axios发送一个请求到控制器,如果任何点击类似或不喜欢按钮。

这是我在家庭刀片上的脚本

代码语言:javascript
运行
复制
<div class="d-flex justify-content-center">
                  <button type="button"  class="btn btn-outline-success btn-sm " onclick="actOnReact(event);" data-react-id="{{$posts->id}}">Like</button>
                  <p id="likes-count-{{$posts->id}}"> {{$posts->post_like}}&nbsp;&nbsp;</p>
                  <p>&nbsp;&nbsp;</p>
                  
                  <button type="button" class="btn btn-outline-warning btn-sm" onclick="actOnReact(event);" data-react-id="{{$posts->id}}">Dislike</button>
                  <p id="dislikes-count-{{$posts->id}}">{{$posts->post_dislike}}</p>
        </div>
代码语言:javascript
运行
复制
@section('js')
    <script>
        
        var updateReactStats = {
            Like:function (reactId) {
                document.querySelector('#likes-count-' + reactId).textContent++;
            },

            Dislike:function (reactId) {
                document.querySelector('#dislikes-count-' + reactId).textContent++;
            }
        }
        


        var actOnReact = function (event) {
            var reactId = event.target.dataset.reactId;
            var action = event.target.textContent;
            updateReactStats[action](reactId);
            axios.post('/posts/' + reactId + '/react',
                { action: action })
        .then((response)=>{
            console.log(response)
        }).catch((error)=>{
            console.log(error.response.data)
        })
        };

    </script>
    @endsection

我的HomeController.php节

代码语言:javascript
运行
复制
 /**
 * increment like or dislike for the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function react(Request $request, $id)
{
  $action = $request->get('action');
    switch ($action) {
        case 'Like':
            Post::where('id', $id)->increment('post_like');
            break;
        case 'Dislike':
            Post::where('id', $id)->decrement('post_dislike');
            break;
    }
    return '';
}

我在web.php路由中的路由::(‘post’,PostsController::class);

EN

Stack Overflow用户

发布于 2020-12-16 17:11:57

资源路由Route::resource('posts', PostsController::class);没有使/posts/{post}/react可用,它只提供CRUD路由(索引、创建、编辑.)可用。(可用操作的完整列表可在文档:资源控制器处理的操作中找到)

您需要添加一个专门处理用例的路由。将此路由添加到web.php

代码语言:javascript
运行
复制
Route::post('/posts/{id}/react', [PostController::class, 'react']);
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65326592

复制
相关文章

相似问题

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