Laravel从视图重定向到路由

Laravel redirect from view to a route

本文关键字:路由 重定向 视图 Laravel      更新时间:2023-09-26

我想从视图重定向:

Route::get('/MyRoute', function () {
    return View::make('MyView');
});

在MyView中我想执行一些JavaScript,然后重定向到下载:

// some imaginary javascript code, which will get executed
<?php
Redirect::to('/MyRoute2');
我似乎找不到一个可行的方法。我做错了什么?

当然我可以把/MyRoute改成:

Route::get('/MyRoute', function () {
    return Redirect::to('/MyRoute2');
});

但是我不能执行一些JavaScript代码

你必须在视图中使用JS。所有的php在页面呈现之前都会处理,所以如果你想在一些js代码之后重定向,你需要从客户端调用重定向:

<script>
// your "Imaginary javascript"
 window.location.href = '{{url("yoururl")}}';
// or
 window.location.href = '{{route("myRoute")}}'; //using a named route
</script>

你不返回重定向对象,就像你必须返回一个视图对象一样,你还必须返回重定向。

所以你必须在你的控制器中return Redirect::to('/MyRoute2');