Laravel + Vue页面重定向

时间:2018-11-18 15:51:27

标签: laravel-5 vuejs2

当我尝试创建必须在另一个页面中完成的操作时,如何重定向到页面?

示例:

我创建了一个页面,该页面将询问书籍的详细信息并将其保存到数据库中。第一页将要求用户放入书的封面,标题和说明。我将Vue Component用于页面,将axios用于将其保存在数据库中。我使用这段代码window.location.href = "/create-book/"重定向到另一个页面,该页面将使用户可以开始编写,并且在他保存该页面时,该页面将保存在他正在制作的当前书中。

现在我陷入了困境

Vue组件

axios.post('/admin/saveBook', formData).then(function(result){
    // console.log(result.data)
    window.location.href = "/admin/write-book";
});

在我的控制器中,我使用了它

控制器

return response()->json($book);

我的目标是将整个页面写一整页。谢谢!

1 个答案:

答案 0 :(得分:1)

您可能会考虑使用Vue Router,特别是Dynamic Route MatchingProgrammatic Navigation

在路由器中,您将拥有一条动态的书籍路径。

routes: [
    {
        // dynamic segments start with a colon
        path: '/books/:id',
        name: 'book',
        component: Book
    }
]

然后在组件中,导航到有关创建的书。

axios.post('/admin/saveBook', formData).then(function(result) {
    this.$router.push({ name: 'book', params: { id: result.data.book.id }});
});

如果您需要在浏览图书时获取该书的信息,则可以在挂载时使用id来获取它,也可以将其作为道具传递给导航。参见Passing Props to Route Components