我正在尝试将一个变量从Controller传递给View:
控制器
class StaticDataController extends BaseController {
public $layout = 'layouts.default';
public function showIndex()
{
return View::make('index', array('test'=>'Hello World'));
}
}
查看
@extends('layouts.default')
@section('content')
{{ $test }}
@stop
布局
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
@yield('content')
</body>
</html>
并收到以下错误:
Undefined variable: test (View: /srv/www/htdocs/test/app/views/index.blade.php)
这是我的结构:
P.S:
[routes.php文件]
<?php
Route::get('/', function()
{
return View::make('index');
});
答案 0 :(得分:0)
尝试
return View::make('index')->with('test'=>'Hello World');
答案 1 :(得分:0)
Laravel允许您轻松定义单个路径来处理每个路径 控制器中的动作。首先,使用the定义路线 Route :: controller方法:
您的路线不正确,必须更改为与此行类似:
Route::controller('users', 'UserController');
或改为:
Route::get('/', function()
{
return View::make('index')->with('test', $test);
});
和您的控制人员:
class UserController extends BaseController {
public function getIndex()
{
return View::make('index', array('test'=>'Hello World'));
}
public function postProfile()
{
//
}
public function anyLogin()
{
//
}
}
然后您可以轻松访问视图中的varibale,例如:
{{test}}
答案 2 :(得分:0)
尝试:
在你的控制器内:
$test = array("foo", "bar", "hello", "world");
return View::make('index',compact('test'));
在你的观点中:
@foreach($test as $value)
<p>{{$value}}</p>
@endforeach