你好,这里的人是controller
$siteinformation = DB::table('siteinformation')->where('Site',$myarr[0]['site'])->select()->get();
print_R($siteinformation); will display
Array ( [0] => stdClass Object ( [Site] => site1 [Nickname] => friend [ProgramID] => 1 [CreateDateTime] => 2014-06-03 18:05:39 ) )
我正在尝试将其传递给视图
return Redirect::to('sbs_site')->with('siteinformation',$siteinformation);
在我看来,我有......
@if(Session::has('siteinformation'))
@foreach ($siteinformation as $key => $value)
{{ $value->Nickname }}
@endforeach
@endif
我得到错误Undefined variable: siteinformation
我的路线文件包含... Route::post('sbs_site', array('uses' => 'myController@sys_config'));
可能是什么问题?
答案 0 :(得分:2)
我认为你不需要重定向;可能你做错了,而是应该使用类似的东西直接将数据传递给视图:
$siteinformation = DB::table('siteinformation')
->where('Site',$myarr[0]['site'])
->get();
// View Name: "sbs_site.blade.php"
return View::make('sbs_site')->with('siteinformation', $siteinformation);
然后在视图中:
@foreach ($siteinformation as $value)
{{ $value->Site }}
{{ $value->Nickname }}
@endforeach
但如果你真的需要使用重定向,那么你可以这样做:
// Route Is: "sbs_site"
return Redirect::to('sbs_site')->with('siteinformation', $siteinformation);
然后在你看来:
@if(Session::has('siteinformation'))
@foreach (Session::get('siteinformation') as $value)
{{ $value->Site }}
{{ $value->Nickname}}
@endforeach
@endif
答案 1 :(得分:0)
这对我有用......
在视图中
@if(Session::has('siteinformation'))
@foreach (Session::get('siteinformation')as $key => $value)
{{ $value->Nickname}}
@endforeach
@endif
在控制器中
return Redirect::to('sbs_site')->with('siteinformation',$siteinformation);
答案 2 :(得分:0)
如果(Session :: has(' siteinformation')),您的视图文件未获取会话设置,因为您未在控制器中设置会话。您在控制器中设置了网站信息'作为正常变量。如果你想设置会话,而不是这个。
Redirect::to('sbs_site')->with('siteinformation',$urserializedobj);
这样做
Session::put('siteinformation',$urserializedobj);
Redirect::to('sbs_site');
OR
只是不要在您的视图中检查会话而不是
if(Session::has('siteinformation'))
就这样做
if (!empty($siteinformation)) :
答案 3 :(得分:-1)
我不知道你为什么要重定向将它传递给视图
return View::make('yourview',array('siteinformation'=>$siteinformation));
如果您可以直接从控制器创建视图,这将起到作用 但 如果你需要重定向,我想你可以序列化你的数组或首先将它改为json,因为with函数将数据作为flash传递给所有字符串
$urserializedobj = $siteinformation.toJson();//if this doesn't work try serealizing
return Redirect::to('sbs_site')->with('siteinformation',$urserializedobj );
现在在你看来你可以做到这一点
@if(Session::has('siteinformation'))
$siteInformation = json_decode(Session::get('siteinformation'));
@foreach ($siteinformation as $key => $value)
{{ $value->Nickname }}
@endforeach
@endif