laravel更改消息bug变量名称

时间:2014-07-17 21:47:57

标签: php laravel laravel-4 blade

我有两个模型,分别是NextPageMasterInformation。但是,我有一个观点。该视图具有输入字段。当用户提交表单时,我需要验证数据。 我这样做:

$dataMasterInformation = [
    'container' => Input::get('container')
];
$dataNextPage = [
    'xpath' => 'next_page_xpath',
    'prefix' => 'next_page_prefix',
    'suffix' => 'next_page_suffix'
];
$validationMasterInformation = Validator::make($dataMasterInformation, MasterInformation::$rules);
$validationNextPage = Validator::make($dataNextPage, NextPage::$rules);
if(($validationMasterInformation->passes()) && ($validationNextPage->passes())){}else{
    return Redirect::back()->withInput()->withErrors($validationNextPage->messages()->merge($validationMasterInformation));
}

rules模型的NextPage是:

public static $rules = array(
    'xpath' =>'required'
);

rules模型的MasterInformation是:

public static $rules = array(
    'container' => 'required'
);

我的视图的刀片代码是:

<li>
    {{Form::text('container', '', array('placeholder' => 'Container'))}}
    <span>{{$errors->first('container')}}</span>
</li>
<li>
    {{Form::text('next_page_xpath', '', array('placeholder' => 'Next Page Xpath'))}}
    <span>{{$errors->first('next_page')}}</span>
</li>
<li>
    {{Form::text('next_page_prefix', '', array('placeholder' => 'Next Page Prefix'))}}
    <span>{{$errors->first('next_page_prefix')}}</span>
</li>
<li>
    {{Form::text('next_page_suffix', '', array('placeholder' => 'Next Page Suffix'))}}
    <span>{{$errors->first('next_page_suffix')}}</span>
</li>
<li>
    <input type="submit" value="Save" />
</li>

我的问题

规则中的名称与表单中的名称不同。因此,如果输入的数据存在错误,我可以发现它们,但我无法在刀片代码中的$errors->first()变量中使用它们。

请问如何解决?

我知道我可以使用确切的名称,但不幸的是,我不能,因为名称中存在冲突,因为模型共享一些相同的变量名称。

1 个答案:

答案 0 :(得分:0)

我可能错了,但如果我没记错的话,$ errors是一个MessageBag类型,这意味着对于每条消息,它实际上都有一个可能与输入名称有关的键。

如果你dd($ errors),它可能会有所帮助,这里是MessageBag的文档,http://laravel.com/api/class-Illuminate.Support.MessageBag.html。我最常用的是get(),merge()和has()。