我是laravel 4中的新手,想要在按下按钮时返回从控制器到视图的值。
我的表单视图:
{{ Form::submit('Save', array('class' => 'btn btn-small btn-info iframe')) }}
<?php
echo $test;
?>
我的控制器:
<?php
class TestController extends BaseController {
/**
* Start scrapping script.
*/
public function postTest() {
$scrap = 'It works!';
return View::make ( 'admin/test/index' )->with('test', $test);
}
}
我的路线:
Route::post('test', 'TestController@postTest');
但是,我得到了:
Undefined variable: test(View: C:\xampp\htdocs\laravel_project\lara\app\views\admin\test\index.blade.php)
任何建议我做错了什么?
感谢您的回答!
更新
我现在改变了我的控制器:
public function getIndex() {
// Show the page
return View::make ( 'admin/test/index' );
}
public function postTest() {
$test = 'It works!';
return View::make ( 'admin/test/index' )->with('test', $test);
}
}
并添加到我的路线文件中:
Route::get('test', 'TestController@getIndex');
Route::post('test', 'TestController@postTest');
Route::controller('test', 'TestController');
此外,在致电时:
{{ $test}}
我得到Undefined variable: $test
任何建议我做错了什么?
答案 0 :(得分:1)
$scrap = "Something";
return View::make ( 'admin/test/index' )->with(array('test' => $scrap));
此外,在您看来,请务必检查$test
是否确实存在。
{{ Form::submit() ... }}
@if(isset($test))
{{ $test }}
@endif
或(根据您的编辑)将getIndex更改为:
return View::make('admin/test/index')->with('test', '');
避免未定义的变量问题。
答案 1 :(得分:1)
更改为以下内容:
public function postTest() {
$test = 'It works!';
return View::make ( 'admin.test.index',['test' => $test] );
}
答案 2 :(得分:1)
将您的品牌改为:
return View::make ( 'admin/test/index' )->with(array('test' => $test));
此外,如果你看一下你的控制器,你赋予值的变量叫做$ scrap,而你分配给视图的变量叫做$ test,我想你的意思是给它们两个相同的名字(或者在视图上它总是空的。
答案 3 :(得分:1)
您应该更改控制器:
return View::make ( 'admin/test/index' )->with('test', $test);
为:
return View::make ( 'admin/test/index' )->with('test', $scrap);
现在您收到了未定义的警告,因为控制器中没有$test
变量。
在Blade视图中,您应该使用以下方式显示它:
{{ $test }}
或
{{{ $test }}}
(第二个用于转义字符)而不是<?php echo $test; ?>