jeudi 7 juillet 2016

Request validation error on production, not on local

So i've search the farthest reaches of the internet and come up with nothing. Please help!

I am developing locally on my Mac, all is fine.

When I push the site to production (CentOS7 VPS) I get the following error:

BadMethodCallException in Validator.php line 3162: Method [validatePublication] does not exist.

Here is my app/Services/Validation/CustomValidation.php

```

use Illuminate\Validation\Validator;

class CustomValidation extends Validator {
 //added only for test
    public function validateCartRow($attribute, $value, $parameters)
    {
      $valid = (is_null(\Cart::get($value))) ? false : true;

      return $valid;
    }

    public function validatePublication($attribute, $value, $parameters)
    {
      $valid = (\PublisherAPI::publicationByID($value) == false) ? false : true;

      return $valid;
    }
}

```

Here is my app/Providers/ValidationServiceProvider.php

```

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Services\Validation\CustomValidation;
use Illuminate\Validation\Validator;

class ValidationServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        $this->app->validator->resolver(function($translator, $data, $rules, $messages)
        {
            return new \App\Services\Validation\CustomValidation($translator, $data, $rules, $messages);
        });
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
    //
    }
}

```

Here is my app/Http/Requests/Cart/addToCartRequest.php

```

namespace App\Http\Requests\Cart;

use App\Http\Requests\Request;

class addToCartRequest 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 [
            'row_publication_id' => 'required|string|numeric|publication',
            'row_price_key' => 'required|string|numeric',
        ];
    }
}

```

This is the request that is failing on production. Again, I stress this is not a problem on my local Mac.

Any thoughts? I'm stumped...

Thanks!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire