Laravel从视图重定向到路线

时间:2014-05-10 11:15:49

标签: javascript php laravel

我想从视图中重定向:

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代码。

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

您没有返回Redirect对象,就像您必须返回View对象一样,您还必须返回Redirect。

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

或者您可以使用JS执行重定向。