Une fonction pas commode (ou une noob bien larguée...)

Résolu/Fermé
BonuxDu13 Messages postés 13 Date d'inscription lundi 24 août 2020 Statut Membre Dernière intervention 12 juillet 2021 - 26 déc. 2020 à 17:15
BonuxDu13 Messages postés 13 Date d'inscription lundi 24 août 2020 Statut Membre Dernière intervention 12 juillet 2021 - 26 déc. 2020 à 18:53
Bonjour,


Bonjour! Dans Laravel je suis face à un problème de fonction qui ne s'execute pas. Pour le mettre en evidence j'ai simplifié ma fonction appelante et j'ai mis deux lignes "return..." dans celle qui est appelée, deux lignes qui auraient dû me renvoyer chacune leur texte à l'ecran dès premier passage dans ma fonction. Tout le reste de la fonction appelante s'éxecute correctement quand je le décommente, sauf cet appel initial. Je joins les images juste en dessous. Le résultat est un ecran blanc sur localhost/nomdusite/public/affich.


Du coup j'ai taché de simplifier tout ça et j'ai créé une route/contrôleur/vue dédiée à ce test très simple. Je vous met en dessous les images du test et du résultat : c'est pareil, le texte derrière return ne s'affiche pas. Je sens que j'ai encore fait une erreur toute con, et ce qui l'est encore plus, c'est que je la vois pas.



le résultat :



Configuration: Windows / Firefox 84.0

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 déc. 2020 à 17:37
Bonjour,

Afin que l'on puisse regarder ton code dans les meilleurs conditions et éventuellement en faire des copier/coller... merci de le poster en utilisant les BALISES DE CODE.
Explications ( à lire ENTIEREMENT !! ) disponibles ici:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 déc. 2020 à 17:39
A noter que ta fonction test() ne contient aucun return
Et que pour afficher... il faudrait, de toutes façons faire un echo quelque-part ...
0
BonuxDu13 Messages postés 13 Date d'inscription lundi 24 août 2020 Statut Membre Dernière intervention 12 juillet 2021
26 déc. 2020 à 18:06
ok je remet le code de la fonction appelée :
<?php

namespace App\Http\Controllers;
use Session;
use Illuminate\Http\Request;

class questionnaireController extends Controller
{
    
	public function flushSession(){
		return 'debut d\'exec de flushSession';
        if (Session::get('LAST_ACTIVITY') && (time() - Session::get('LAST_ACTIVITY') > 3 )) {
            Session:flush();
            }
        Session::put('LAST_ACTIVITY', time());
        return 'fin d\'exec de flushSession';
        }


puis celle de la fonction appelante :

 public function affich(){
    	$this->flushSession();
    	/*$salarie = Session::get('salarie');
    	$oui = Session::get('oui');
    	$non = Session::get('non');
    	$situation = Session::get('situation');
    	$travail = Session::get('travail');
    	$manqueTemps = Session::get('manqueTemps');
    	$base = "";
    	if(isset($salarie)) {
    		Session::flush();
			return view('questionnaire', ['base' => null, 'salarie' => 'ok', 'oui' => null, 'travail' => null, 'manqueTemps' => null]);
    		//afficher "Etes vous fonctionnaire?"
    	}
    	else if(isset($oui) || isset($manqueTemps))  {
    		Session::flush();
    		return view('questionnaire', ['base' => null, 'salarie' => null, 'oui' => 'ok', 'travail' => null, 'manqueTemps' => 'ok']);
    		//afficher la vue de non éligibilité
    	}
    	else if(isset($travail)) {
    		Session::flush();
    		Session::put('eligibilite', 'ok'); 
    		return view('eligibilite');
    		//afficher la vue d'éligibilité
    	}
    	else if(isset($non) || isset($situation)) {
    		Session::flush();
    		return view('questionnaire', ['base' => null, 'salarie' => null, 'oui' => null, 'travail' => 'ok', 'manqueTemps' => null]);
    		//afficher "Combien d'années avez-vous travaillé en France dans votre vie?"
    	}
    	else {
    		return 'Temps d\'attente réponse trop long';*/
    	}



et le code du test : fichier web.php

Route::get('test','App\Http\Controllers\testController@test'
)->name('test');



contrôleur :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class testController extends Controller
{
    public function flushSession(){
		return 'debut';
        }

    public function test(){
    	$this->flushSession();
    }
}

?>


vue insérée dans un template :

@extends('template')

@section('title', 'Programme 1')

@section('contenu')
        <!-- Navigation-->
        <nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="mainNav">
            <div class="container">
                <a class="navbar-brand js-scroll-trigger"><span style="color: #dc3545">NOM DE L'ECOLE</span></a>
                <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                    Menu
                    <i class="fas fa-bars ml-1"></i>
                </button>
                <div class="collapse navbar-collapse" id="navbarResponsive">
                    <ul class="navbar-nav text-uppercase ml-auto">
                        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#"><span style="color: #dc3545"><strong>Accueil</strong></span></a></li>
                        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#"><span style="color: #dc3545"><strong>Programme 1</strong></span></a></li>
                        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#"><span style="color: #dc3545"><strong>Programme 2</strong></span></a></li>
                        
                    </ul>
                </div>
            </div>
        </nav>
        <!-- Masthead-->
        <header>
	        <section class= "page-section" id="services">   
	            <div class="container" >
                
                </div>
                
                <div class="container text-center">
	               
	                <br><br><br><br><br><br><a class="btn btn-primary btn-xl text-uppercase js-scroll-trigger " href="#">Envoyer</a><br><br><br>
	            </div>
            </section>
        </header>
        <!-- Services-->
        
        <!-- Portfolio Grid-->
       
        <!-- Contact-->
        
        <!-- Footer-->
@endsection
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 déc. 2020 à 18:19
Tu sais que un return te fais sortir de la fonction ?
Un return n'affiche rien...

As-tu essayé de remplacer tes return par des écho ??
0
ah ben oui je viens de le faire dès que t'as parlé d'echo, et là j'ai pu voir que ma fonction d'abandon de variables session est bien executée... Merci
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 déc. 2020 à 18:23
Donc problème réglé... :-)

Pense à mettre le sujet en Résolu
0
BonuxDu13 Messages postés 13 Date d'inscription lundi 24 août 2020 Statut Membre Dernière intervention 12 juillet 2021
26 déc. 2020 à 18:53
fait! En plus j'avais mis qu'un seul "deux points" entre session et flush, j'ai rectifié et du coup mes variables de session sont bien abandonnées dans le temps imparti
0