Donc, j'ai cette fonction, comment puis-je faire en sorte qu'elle renvoie 2 vues après le temps passé?
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class emailverified extends Controller
{
public function emailverified()
{
return view('auth.email.emailverified');
sleep(3);
return redirect()->away('https://www.xxx.xxx');
}
}
Il ne choisit que l'un ou l'autre chemin. Comment puis-je le faire revenir à la vue après le retour de la minuterie de mise en veille à une autre vue?
4 réponses
Essayez d'utiliser javascript dans la fonction de votre contrôleur
class emailverified extends Controller
{
public function emailverified()
{
echo "<script>setTimeout(function(){ window.location.href = 'https://www.xxx.xxx'; }, 3000);</script>";
return view('auth.email.emailverified');
}
}
Au lieu de renvoyer la vue, vous pouvez essayer echo view('your view')
.
Le code ne doit pas être quitté à ce stade
Puis ajoutez votre code de sommeil et redirigez, cela devrait fonctionner je viens de le tester
Vous pouvez utiliser actualisation de l'en-tête
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class emailverified extends Controller
{
public function emailverified()
{
return view('auth.email.emailverified')->withHeaders(['refresh' => '3;url=https://www.xxx.xxx']);
}
}
Il semble que vous essayez d'afficher une réponse pour l'utilisateur et de rediriger vers une autre page dans un certain intervalle de temps, ce que vous avez essayé est faux, une fois que vous avez codé l'instruction de retour dans une fonction, le script ne sera plus exécuté et votre instruction pour la redirection ne fonctionnera pas.
La meilleure solution est de renvoyer la réponse en tant que réponse ajax, et vous pouvez facilement effectuer les deux actions en peralal,
$response = [
"ViewBag" => view('auth.email.emailverified')->render(),
'URLTOREDIRECT' => 'https://www.xxx.xxx',
];
return response()->json($response);
Liez l'événement suivant au bouton ou à l'ancre où vous voulez que l'appel ajax se produise ou si une soumission de formulaire
$("#yourButtonId").live("click",function(event) {
var url = '{!! url("/your/path") !!}';
$.ajax({
type: "post", //depending on your route is get or post
url: url,
data: $("#yourformid").serialize()+'&data1='+$('#data1').val()+'&data2='+$('#data2').val()',
dataType : "json",
beforeSend: function(){
alert('loading'); //or your can show a user friendly loader
}
}).done(function(data) {
$("#yourDivId").html(data.ViewBag);
var delay = 1000; //millisecond
setTimeout(function(){ window.location = data.URLTOREDIRECT; }, delay);
}).fail(function(data) {
if(data.responseJSON){
var errors = data.responseJSON;
errorsHtml = '<ul>';
$.each( errors , function( key, value ) {
errorsHtml += '<li>' + value[0] + '</li>';
});
errorsHtml += '</ul>';
alert(errorsHtml);
}else{
alert(data.responseText);
}
});
event.preventDefault();
});
Questions connexes
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.