Je suis en train de mettre en œuvre l'une des nouvelles fonctionnalités de Laravel « Règles de validation personnalisées » et je suis en cours d'exécution dans l'erreur suivante:Laravel Validation personnalisée - API Mailgun
Object of class Illuminate\Validation\Validator could not be converted to string
que je suis les étapes de cette video: New in Laravel 5.5: Project: Custom validation rule classes (10/14)
Il s'agit d'un outil de validation de l'API Mailgun API.
forme simple qui demande: prénom, nom, société, e-mail et un message
Voici mon code:
web.php
Route::post('contact', '[email protected]');
StaticPageController.php
use Validator;
use App\Http\Validation\ValidEmail as ValidEmail;
public function postContact(Request $request) {
return Validator::make($request->all(), [
'firstname' => 'required|max:90',
'lastname' => 'required|max:120',
'company' => 'max:120',
'email' => [
'required', 'string', 'max:255',
new ValidEmail(new \GuzzleHttp\Client)
],
'message' => 'required',
]);
}
ValidEmail.php
<?php
namespace App\Http\Validation;
use Illuminate\Contracts\Validation\Rule;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client as Guzzle;
class ValidEmail implements Rule
{
protected $client;
protected $message = 'Sorry, invalid email address.';
public function __construct(Guzzle $client)
{
$this->client = $client;
}
public function passes($attribute, $value)
{
$response = $this->getMailgunResponse($value);
}
public function message()
{
return $this->message;
}
protected function getMailgunResponse($address)
{
$request = $this->client->request('GET', 'https://api.mailgun.net/v3/address/validate', [
'query' => [
'api_key' => env('MAILGUN_KEY'),
'address' => $address
]
]);
dd(json_decode($request->getBody()));
}
}
Expectation
Je me attends de voir quelque chose comme ceci:
{
+"address": "[email protected]"
+"did_you_mean": null
+"is_disposable_address": false
+"is_role_address": false
+"is_valid": false
+"parts": {
...
}
}
Toute aide est très appréciée. J'ai essayé de faire fonctionner cet exemple simple pendant plus de deux heures maintenant. J'espère que quelqu'un avec mon expérience peut aider!
Je l'ai travail, avez-vous besoin encore cela? – user3253002