我试图将变量从一个视图传递到控制器到另一个视图。我没有收到任何错误,但是当它到达最后一个视图时,它并没有像它应该那样显示变量。在第一个视图中,我只是得到一个名字。
{{ Form::open(array('route' => 'form', 'method'=>'post')) }}
{{ $name = Form::text('name') }}
{{ Form::submit('Go!') }}
{{ Form::close() }}
这是我的HomeController.php。
public function view1()
{
return View::make('stuff');
}
public function postView1($name)
{
return Redirect::route('view2')->with($name);
}
public function view2($name)
{
return View::make('view2')->with($name);
}
routes.php文件
Route::get('/', array('as' => 'stuff', 'uses' => 'HomeController@stuff'));
Route::post('form/{name}', array('as' => 'form', 'uses'=>'HomeController@postView1'));
Route::get('view2/{name}', array('as' => 'view2', 'uses' => 'HomeController@view2'));
view2.blade.php
{{ $name = Input::get('name') }}
<p> Hello, {{ $name }} </p>
那么为什么它不会出现?
答案 0 :(得分:13)
首先,您应该将postView
功能更改为:
public function postView1()
{
return Redirect::route('view2', ['name' => Input::get('name')]);
}
你的路线:
Route::post('form/{name}', array('as' => 'form', 'uses'=>'HomeController@postView1'));
成:
Route::post('form', array('as' => 'form', 'uses'=>'HomeController@postView1'));
现在,您应该将view2
功能更改为:
public function view2($name)
{
return View::make('view2')->with('name',$name);
}
现在,您应该可以使用view2.blade.php
:
<p> Hello, {{ $name }} </p>
答案 1 :(得分:2)
您需要命名变量:
public function view2($name)
{
return View::make('view2')->with('name', $name);
}
答案 2 :(得分:1)
class HomeController extends Controller {
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
}
public function index()
{
$data = array (
'title'=>'My App yo',
'Description'=>'This is New Application',
'author'=>'foo'
);
return view('home')->with($data);;
}
}
答案 3 :(得分:0)
如果您使用POST方法尝试表单,为什么在路由中设置变量,它将直接在您的函数上使用后期数据。
{{ Form::open(array('url' => 'form', 'method'=>'post')) }}
{{Form::text('name') }}
{{ Form::submit('Go!') }}
{{ Form::close() }}
路线: -
Route::post('form','HomeController@postView1');
控制器功能: -
public function postView1() {
$data = Input::all();
return Redirect::route('view2')->with('name', $data['name']);
}
并获取有关view2的数据: -
<p> Hello, {{ $name }} </p>
如需更多关注HERE
答案 4 :(得分:0)
这里还有其他答案,直接来自Laravel docs:
由于 with 方法会向会话中闪现数据,您可以使用典型的 Session :: get 方法检索数据。
而不是{{$name}}
写{{Session::get('name')}}
。