J'utilise la version 5.7 de Laravel 5.7. J'utilise papillon code> dans
kernel.php code> pour éviter que l'utilisateur envoie des requêtes plus de 60. J'aimerais traduire son message "Trop de tentatives". et utiliser votre propre message. Comment puis-je le faire à Laravel? Où puis-je trouver ça? p>
4 Réponses :
J'ai trouvé votre dossier dans cette adresse de Laravel:
Vendeur \ Laravel \ Framework \ SRC \ Llluminate \ Routage \ Middleware \ THROTTLEREQUESTS.PHP CODE>
protected function buildException($key, $maxAttempts)
{
$retryAfter = $this->getTimeUntilNextRetry($key);
$headers = $this->getHeaders(
$maxAttempts,
$this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter),
$retryAfter
);
return new ThrottleRequestsException(
'You can change message here and put your message!', null, $headers
);
}
Je conseillerais contre la modification des fichiers de base de base / forfaits, ils seront probablement partis après une mise à jour
Dans votre gestionnaire d'exception Laravel, vous pouvez gérer cette exception avant de rendre et de remplacer cette exception avec votre exception personnalisée.
dans App / Exceptions / Handler.php Strong> P> /**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*/
public function render($request, Exception $exception)
{
if($exception instanceof ThrottleRequestsException) {
return parent::render(
$request, new ThrottleRequestsException(
'Your message',
$exception->getPrevious(),
$exception->getHeaders(),
$exception->getCode()
)
);
}
return parent::render($request, $exception);
}
Vous pouvez créer votre middleware personnalisé dans le dossier Attribuer ensuite APP / HTTP / MIDENDWARES MIDIDWARES, étendre la base
\ Illuminate \ routage \ middleware \ hivereQuests code> classe et remplacer le
BuildException code> Méthode ( Original Mise en œuvre ici ). P>
Middleware Code> Middleware à votre classe Middleware personnalisée dans
Kernel.php Code> P>
use Symfony\Component\HttpKernel\Exception\HttpException; if($exception instanceof HttpException && $exception->getStatusCode() == 429) { return response()->json([ 'message' => 'Too Many Attempts', 'code' => 429 ], 429)->withHeaders($exception->getHeaders()); }