大家好,下面是我的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'));
有什么问题吗??
我认为你不需要重定向;也许你做错了,相反,你应该使用这样的东西直接将数据传递给视图:
$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
这对我有用…
in view
@if(Session::has('siteinformation'))
@foreach (Session::get('siteinformation')as $key => $value)
{{ $value->Nickname}}
@endforeach
@endif
在控制器 return Redirect::to('sbs_site')->with('siteinformation',$siteinformation);
你的视图文件没有得到会话设置如果(session::has('siteinformation'))),因为你没有在你的控制器设置会话。您将控制器'siteinformation'设置为正常变量。如果你想设置会话,而不是这个。
Redirect::to('sbs_site')->with('siteinformation',$urserializedobj);
这样做
Session::put('siteinformation',$urserializedobj);
Redirect::to('sbs_site');
或
不要在视图中检查session,而要检查
if(Session::has('siteinformation'))
就这样做
if (!empty($siteinformation)) :
我不知道你为什么要重定向传递给视图
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