2015-12-16 1 views
0

я борюсь за пару часов, чтобы исправить эту ошибку, но не повезло, пожалуйста, мне нужна помощь об этой ошибке всегда говорит: (Array для преобразования строки)Ошибка проверки (Массив для преобразования строки) в Laravel 5,1

Код:

<?php 
namespace App\Http\Controllers; 
use Validator; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use Illuminate\Foundation\Bus\DispatchesJobs; 
use Illuminate\Routing\Controller as BaseController; 
use Illuminate\Foundation\Validation\ValidatesRequests; 
use Hash, Auth, URL, Route, Cart, View, Paypal; 
use App\Product, App\ProductBenefit, App\Country, App\Currency, App\User, App\City; 

class HomeController extends BaseController { 
public function postCheckoutStepPayment(Request $request){ 
     if(!is_null($request->input('ship_to_diff_address'))){ 
      $validate = Validator::make($request->all(), User::$rules); 
      if($validate->fails()) { //<- problem this part 
       return 'failed'; 
      } 

     } 
    } 
} 

User.php

public static $rules = array(
      'diff_firstname' => 'required', 
      'diff_lastname' => 'required', 
      'diff_phone'  => 'required', 
      'diff_countries' => 'required', 
      'diff_city'  => 'required', 
      'diff_state'  => 'required', 
      'diff_address' => 'required', 
      ); 

enter image description here

+0

Какая ошибка вы получаете? –

+0

@MinaAbadir Ошибка преобразования строки в строку – Grald

+0

Возможные дубликаты: http://stackoverflow.com/questions/25691523/laravel-validator-fails-due-to-array-to-string-conversion –

ответ

0

Добавить этот класс в вас контроллер

use App\Http\Requests; 

И попробуйте этот код в файле с лезвиями.

@if(isset($errors)) 
    <ul style="list-style: none;" class="alert alert-warning"> 
    @foreach($errors->all() as $content) 
     <li>{{$content}}</li> 
    @endforeach 
    </ul> 
@endif 
+0

Мой контроллер не может перейти к представлению из-за ошибки в части проверки в моем контроллере – Grald

+0

Редактировать мое сообщение. show again – paranoid

+0

такая же ошибка результата все еще произошла – Grald

0

добавить use Redirect в верхней части, и

public function postRegister(Request $request) 
     { 
      $v = Validator::make($request->all(), [ 
      'firstname' => 'required', 
      'lastname' => 'required', 
      'phone'  => 'required', 
      'countries' => 'required', 
      'city'  => 'required', 
      'state'  => 'required', 
      'address' => 'required', 
      ]); 

      if ($v->fails()) { 
       return redirect::to('register') 
          ->withErrors($v->messages()) 
          ->withInput(); 
      } 


     } 
+0

Вам не нужно использовать Redirect при использовании 'redirect()', только при использовании 'Redirect :: to()' и что вы изменили в 'postRegister() ', имя переменной? –

+0

вместо '$ validator',' $ validator-> messages() ' – Sid

+0

@Sid на самом деле нет проблем с этой частью. Моя проблема - это оператор if if ($ v-> fail()), эта часть что-то пошла не так – Grald

1

Оказывается, что значение локали в вашей конфигурации/app.php является массивом, в то время как функции loadPath в поставщика/Laravel/рамки/src/Illuminate/Translation/FileLoader.php ожидает, что это будет строка. Поэтому я предлагаю вам установить его значение как «en», так и «sv» в файле конфигурации, а затем впоследствии изменить его программно в вашем коде по мере необходимости.

+0

Твой лучший @Викас, который ты спаси, мой день, спасибо тебе большое :) – Grald

Смежные вопросы