2015-04-05 24 views
1

我已经创造了L5的请求来处理保存的接触,它看起来像这样单独的验证错误:Laravel 5的要求 - 如何显示

<?php namespace App\Http\Requests; 

use App\Http\Requests\Request; 

class AddContactRequest extends Request { 

    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'category_ids' => 'required|array|exists:categories,id', 
      'gender' => 'required|in:Male,Female', 
      'first_name' => 'required', 
      'last_name' => 'required', 
      'company' => 'required', 
      'position' => 'required', 
      'website_url' => 'url', 
      'facebook_url' => 'url', 
      'twitter_url' => 'url', 
      'instagram_url' => 'url', 
      'misc_url1' => 'url', 
      'misc_url2' => 'url', 
      'address_1' => 'required', 
      'citytown' => 'required', 
      'postcode' => 'required', 
      'country_id' => 'required|integer|exists:countries,id', 
      'work_email' => 'email', 
      'home_email' => 'email', 
      'work_phone' => '', 
      'mobile_phone' => '', 
      'home_phone' => '' 
     ]; 
    } 

    /** 
    * Error messages for validation rules 
    * @return array 
    */ 
    public function messages() 
    { 
     return [ 
      'category_ids.required' => 'You must select at least one category.', 
      'category_ids.array' => 'Categories must be an array.', 
      'category_ids.exists' => 'The category does not exist.', 
      'gender.required' => 'The gender field is required.', 
      'gender.in' => 'The gender is invalid.', 
      'first_name.required' => 'The first name field is required.', 
      'last_name.required' => 'The last name field is required.', 
      'company.required' => 'The company field is required.', 
      'position.required' => 'The position field is required.', 
      'website_url.url' => 'The website URL is not a valid URL.', 
      'facebook_url.url' => 'The facebook URL is not a valid URL.', 
      'twitter_url.url' => 'The twitter URL is not a valid URL.', 
      'instagram_url.url' => 'The instagram URL is not a valid URL.', 
      'misc_url1.url' => 'The miscellaneous URL 1 field is not a valid URL', 
      'misc_url2.url' => 'The miscellaneous URL 2 field is not a valid URL', 
      'address_1.required' => 'The address 1 field is required.', 
      'citytown.required' => 'The city/town field is required.', 
      'postcode.required' => 'The postcode field is required.', 
      'country_id.required' => 'The country field is required.', 
      'country_id.integer' => 'The country field must contain an integer.', 
      'country_id.exists' => 'The country is invalid.', 
      'work_email.email' => 'The work email field is not a valid email address.', 
      'home_email.email' => 'The home email field is not a valid email address.' 
     ]; 
    } 

} 

如果验证失败,我能输出所有的我用下面的代码视图错误:

@if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     <strong>Whoops!</strong> There were some problems with your input.<br><br> 
     <ul> 
      @foreach ($errors->all() as $error) 
       <li>{{ $error }}</li> 
      @endforeach 
     </ul> 
    </div> 
@endif 

但我想说明个人的错误,并添加一个类的形式组如果该字段有像这样的错误:

<div class="form-group <?php echo ($messages->has('first_name')) ? 'has-error' : ''; ?>"> 
    <label for="first_name" class="control-label col-xs-12 col-sm-3 col-md-4 col-lg-4">First Name</label> 
    <div class="col-xs-12 col-sm-6 col-md-8 col-lg-8"> 
     {!! Form::text('first_name', '', array('class' => 'form-control')) !!} 
    </div> 
</div> 

的$消息 - >有()方法似乎并不工作,但我得到以下错误:

Whoops, looks like something went wrong. 

2/2 
ErrorException in 6351f2a902813f4fd7aa70b7ef38354d line 34: 
Undefined variable: messages (View: C:\xampp\htdocs\fourteen-ten\resources\views\admin\contacts\add.blade.php) 

有谁知道为什么我收到此错误?

回答

2

OK感谢Sulthan我能弄明白。相反的:

$messages->has('field_name') 

我应该使用:

$errors->has('field_name') 
+0

是的,那太好了。 – 2015-04-05 11:39:55

8

单独显示错误。你应该把这个每项要素下

<div class="error">{{ $errors->first('category_ids') }}</div> 

注:

您应该创建一个命名为error在你的CSS这个类。

这将显示错误,只有当任何occcurs

+0

这个效果很好,但最好使用条件(如果其他)为显示错误容器。 – 2018-02-17 17:55:17

0

我觉得这是一个简单的过程:

$rules=array('mobile'=>'required|numeric'); 
$validator=Validator::make(Input::all(),$rules); 

if($validator->fails()){ 
    $failedRules=$validator->failed(); 
    if(isset($failedRules['signInType']['Required'])){ 
     return response()->json(["status"=>"Error","message"=>"Please enter signInType"]); 
    } 

    if(isset($failedRules['signInType']['Numeric'])){ 
     return response()->json(["status"=>"Error","message"=>"mobile must be numeric"]); 
    } 
} 
+0

对不起!我以这种方式发布了代码,因为我不知道如何发布评论 – 2016-09-09 11:40:55

+0

您需要[50声望评论](http://stackoverflow.com/help/privileges/comment)。因此,如果有人赞扬你的贡献,你可以提问和回答问题并赢得声望。 – Alsatian 2016-09-09 14:39:52