【问题标题】:laravel vue button gets route but couldn't access the controllerlaravel vue 按钮获取路由但无法访问控制器
【发布时间】:2021-05-23 15:27:47
【问题描述】:

我有一个 vue 按钮来筛选用户。当我单击按钮时,它可以访问路由但不能访问控制器。我在表单标签中有一个常规按钮,并将操作设置为相同的 url。一切正常。但唯一的问题是它在处理后重定向到不同的空白页。

vue按钮@click方法

<template>

        <button class="button" @click="shortlistUser">Shortlist</button>

</template>

<script>
    export default {

        props:['userId'],

        mounted() {
            console.log('Component mounted.')
        },

        methods:{

            shortlistUser(){
                axios.get('/shortlist/' + this.userId);
            }
        }
    }
</script>

web.php(这个工作)

Route::get('/shortlist/{user}', function (){
    $employer = Auth::User();
    $employer->candidates()->toggle([2]);

});

当我想通过控制器做同样的事情时,什么也没有发生。

Route::get('/shortlist/{user}', [Controllers\ShortlistController::class, 'index']);

控制器

 public function index(User $user)
    {

        $employer = Auth::User();
        $employer->candidates()->toggle($user);

    }

【问题讨论】:

  • 您的问题是 axios 请求无法到达您的控制器?尝试添加 dd($user);在索引方法的顶部
  • @MohamedAhmed 我什么也没得到。当我打开控制台时,我看到 app.js:1806 GET 127.0.0.1:8000/shortlist/undefined 404 (Not Found)

标签: laravel vue.js button routes


【解决方案1】:

您的 axois 调用中存在问题,userId 发送未定义,请确保将 userId 发送到候选路由。尝试通过像这样放置用户 ID 硬代码来测试您的场景:axios.get('/shortlist/2');

【讨论】:

  • 我做了同样的事情,但仍然得到同样的错误。 :( 我很困惑发生了什么。
  • 您的错误是因为您使用 axios 发送未定义的值。尝试清除缓存并重试
  • 硬刷新后 axios.get('/shortlist/2');作品。现在我该如何调用道具?
  • 你可以编辑你的帖子,然后添加组件代码吗?
  • 是的,这行得通 :) 现在一切正常。非常感谢您。谢谢你的时间。这让我发疯了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 2014-12-15
  • 2018-12-24
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
相关资源
最近更新 更多