将变量从控制器传递到视图 - Laravel
我正在尝试将一个变量从一个视图传递到另一个视图的控制器.我没有收到任何错误,但是当它进入最后一个视图时,它没有像预期的那样显示变量.在第一个视图中,我只是得到一个名字.
I'm trying to pass a variable from one view to a controller to another view. I'm not getting any errors, but when it gets to the last view, it doesn't show the variable like it's supposed to. In the first view, I'm just getting a name.
{{ Form::open(array('route' => 'form', 'method'=>'post')) }}
{{ $name = Form::text('name') }}
{{ Form::submit('Go!') }}
{{ Form::close() }}
这是我的 HomeController.php.
Here is my 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
view2.blade.php
{{ $name = Input::get('name') }}
<p> Hello, {{ $name }} </p>
那为什么不显示呢?
推荐答案
首先你应该把你的 postView
函数改成:
First you should change your postView
function into:
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
函数更改为:
Now, you should change your view2
function into:
public function view2($name)
{
return View::make('view2')->with('name',$name);
}
现在在您的 view2.blade.php
中,您应该可以使用:
Now in your view2.blade.php
you should be able to use:
<p> Hello, {{ $name }} </p>
相关文章