我想从视图中重定向:
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代码。
答案 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执行重定向。