kyo*_*kyo 2 php laravel laravel-4 laravel-5
我想将我的变量$ username的值从我的控制器发送到我的视图.
我把它发送到我的控制器底部,如下所示:
return Redirect::to('/')
->with('error','Username/Password Wrong or account has not been activated !')
->withInput(Request::except('password'))
->with('username', $username )
->withErrors($validator);
Run Code Online (Sandbox Code Playgroud)
注意:$ username
在我的主页的某个地方有网址 /
我试着把它打印出来 {{ $username or 'Nothing' }}
它继续印刷 Nothing
似乎我的$username变量从未被发送过?有人可以指出我在这里做错了什么吗?
重定向很重要.从重定向文档:
重定向到新URL并将数据闪烁到会话通常是同时完成的.因此,为方便起见,您可以在单个方法链中创建RedirectResponse实例并将数据刷新到会话:
return redirect('user/login') - > with('message','Login Failed');
问题是,重定向由客户端的浏览器处理.实际上,服务器响应第一个请求"Ok,得到了您的请求.现在转到另一个URL".然后客户端向另一个URL发出请求.因此,Laravel不能只将值传递到下一页进行渲染,因为客户端正在发出新请求.所以该with()子句正在做的是将数据闪存到会话中.因此,您需要在呈现新页面时从会话中检索它.
所以你真正想做的是:
重定向:
return Redirect::to("route1")->with("username", $username);
Run Code Online (Sandbox Code Playgroud)
当新页面加载时(可能在不同的路径上):
return View::make("template")->with("username", Session::get("username"));
Run Code Online (Sandbox Code Playgroud)