我遇到了一个问题,文件找不到变量'lang'。
{{ Form::open(['action' => 'loon.language']) }}
{{Form::select('lang',['nl'=>'nl','po'=>'po'], $lang,['onchange'=>'submit()'])}}
{{$lang = 'blaat'}}
{{var_dump($lang)}}
{{ Form::close()}}
控制器:
public function postChangeLanguage()
{
$rules = [
'language' => 'in:nl,po' //list of supported languages of your application.
];
$language = Input::get('lang'); //lang is name of form select field.
$validator = Validator::make(compact($language),$rules);
// $language = Session::get('language',Config::get('app.locale'));
if($validator->passes())
{
Session::put('language',$language);
App::setLocale($language);
}
else
{ /**/ }
}
路线:
Route::get('language', array(
'uses' =>'LoonController@postChangeLanguage',
'as' => 'loon.language'
));
Filter.php:
App::before(function($request)
{
$language = Session::get('language','nl'); //en will be the default language.
App::setLocale($language);
});
我甚至试着调试它,仍然这个错误代码!
未定义变量:lang (View:/Users/nielsvandijk/loon/rekentool/app/views/partials/header.blade.php) (View:/Users/nielsvandijk/loon/rekentool/app/views/partials/header.blade.php)
有人能帮忙吗?
第一次使用$lang时,它显然还是空的。一个快速的解决方案是在它前面使用@ sing(允许它是未定义的)
{{Form::select('lang',['nl'=>'nl','po'=>'po'], @$lang,['onchange'=>'submit()'])}}
lang变量的作用是在select字段
中定义"selected"元素{{Form::select('lang',['nl'=>'nl','po'=>'po'], 'po',['onchange'=>'submit()'])}}
这将导致:
<select name="lang">
<option value="nl">nl</option>
<option value="po" selected="selected">po</option>
</select>
在控制器中,如果没有预先选择语言,您可以设置默认语言
View::make('view')->with('lang','nl');