Laravel分享变量

时间:2014-03-21 14:37:01

标签: jquery-mobile laravel-4

我有一些观点:mobilepage1,mobilepage2,mobilepage3,mobilepage4 en 5。 首先你去mobilepage1,然后点击“下一步”按钮,然后转到mobilepage2等。

在mobilepage2中我有一个表单,用户必须选择一些选项。然后控制器进行计算并共享一些变量:

View::share('waarschijnlijkheid',$waarschijnlijkheid);
View::share('effect',$effect);
View::share('blootstellingsfreq',$blootstellingsfreq);
View::share('risico',$risico);

在mobilepage3中显示这些变量并正确完成。

之后你会获得移动页面4和5.在mobilepage5中我还想再次显示相同的变量。我收到错误:

  {"error":{"type":"ErrorException","message":"Undefined variable: waarschijnlijkheid     (View: C:\\Google Drive\\htdocs\\laravel4_test4\\app\\views\\mobilepages\\mobilepage5.blade.php)","file":"C:\\Google Drive\\htdocs\\laravel4_test4\\app\\storage\\views\\49e12d376740da5fc90b17627351022b","line":25}}

我在这里读到:Laravel 4 - understanding View::share() 共享变量可以在整个应用程序中访问。那么为什么不在我的最终mobilepage5?为了测试这个,我使两个视图完全相同。

这是mobilepage5和3摘要。

         <td>{{$effect}}</td>
         <td>x</td>
         <td>{{$blootstellingsfreq}}</td>
         <td>x</td>
         <td>{{$waarschijnlijkheid}}</td>
         <td>=</td>
         <td>{{$risico}}</td>
         <td>{{ '->'}}</td>
         <td>{{$risicoklasse}}</td>

这是我的路线档案:

Route::get('/', function(){

    return View::make('mobilepages.login');
});
Route::post('login','MobileController@login');

Route::get('gotomobilepage1', function()
{
    return View::make('mobilepages.mobilepage1', array('errormessages' => 'no messages'));
});

Route::get('mobilepage2', 'MobileController@save_firstpageform');
Route::post('gotomobilepage3', 'MobileController@save_andcalculaterisc');

Route::post('gotomobilepage4', function(){
      return View::make('mobilepages.mobilepage4');
});
Route::post('gotomobilepage5', 'MobileController@gotomobilepage5function');

在我的“save_andcalculaterisc”函数中,计算i共享变量。

public function save_andcalculaterisc()
    {         

             $input = Input::all();
             $waarschijnlijkheid = $input['radio_waarschijnlijkheid'];
             $blootstellingsfreq = $input['radio_blootstellingsfreq'];
             $effect = $input['radio_effect'];
             $risico = $blootstellingsfreq*$effect*$waarschijnlijkheid;
             View::share('waarschijnlijkheid',$waarschijnlijkheid);
             View::share('effect',$effect);
             View::share('blootstellingsfreq',$blootstellingsfreq);
             View::share('risico',$risico);

             //$safetyreport = Users::find(1)->safetyreports;

             if($risico<=20){
                $risicoklasse = "Risico wellicht aanvaardbaar: Aandacht dagelijks overleg";

            } else if ($risico>20 && $risico <= 70){
                 $risicoklasse = "Mogelijk risico: Aandacht vereist";
             } else if ($risico>70 && $risico <= 200) {
                  $risicoklasse = "Belangrijk risico: Maatregelen vereist";
               }else if ($risico>200 && $risico <= 400) {
                  $risicoklasse = "Hoog risico: Direct verbetering vereist";
               }else if ($risico >= 400) {
                  $risicoklasse = "Zeer hoog risico: Werkzaamheden stoppen";
               }
               else {
                   $risicoklasse = "Error risicoklasse";
               }
               View::share('risicoklasse',$risicoklasse);
            // }
                 return View::make('mobilepages.mobilepage3');

    }   

1 个答案:

答案 0 :(得分:0)

更改此

View::share('waarschijnlijkheid',$waarschijnlijkheid);
View::share('effect',$effect);
View::share('blootstellingsfreq',$blootstellingsfreq);
View::share('risico',$risico);

致:

View::share(array('risico' => $risico, 'waarschijnlijkheid' => $waarschijnlijkheid, 'effect' => $effect, 'blootstellingsfreq' => $blootstellingsfreq ));

我认为问题在于您使用的是,而不是=>