Bonjour tout le monde,

Je suis occupé à redévelopper une application existante, mais cette fois avec un framework qui est Laravel6.

Je voudrais donc coder convenablement dès le départ en respectant un maximum les conventions de ce magnifique framework.

J'ai codé une premère partie de mon site avec AJAX, mais je ne pense pas que je respecte les conventions de Laravel, j'ai donc plusieurs questions :

1- Est-ce que les fichiers js doivent obligatoirement se mettre dans le dossier public ?
2- Voici mon fichier js avec l'api AJAX, est-il correct ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
$(document).ready(function()
{
    $('#inscription_registre_national').change(function()
    {
        var niss = $(this).val();
        $.ajaxSetup({
            headers:{
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
 
        $.ajax(
        {     
 
            type: 'POST',
            url: 'niss',
            dataType: 'text',
            data:{
                'niss':niss
            },
            success:function(retour)
            {
                if(retour > 0)
                {
                    //DD 08/02/20 permet d'indiquer que le niss est déjà dans la DB, je remove la class et je la remets autrement, il garde toujours la même classe (rouge ou verte)
 
 
                    $('#resultat_check_niss').removeClass().addClass('invalid-feedback').text('Ce numéro de registre national existe déja dans la base de données, si vous avez oublié votre mot de passe, veuillez svp cliquer sur ce lien').show();
 
 
                }
                else
                {
                    $('#resultat_check_niss').removeClass().addClass('valid-feedback').text('Numéro valide et non présent dans la base de données.').show();
                }
 
            },
            error:function(callback)
            {
                console.log(callback);
                alert("dans Erreur");
            }
        });
 
    });
 
 
            });
        }
 
    });
 
});
3- Voici la route :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
Route::post('niss', 'NissController@check_Niss');
4- Ce qui me dérange le plus, c'est le controller qui fait tout le boulot, je ne suis pas censé appeler un modèle ?

Code du controller :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
namespace App\Http\Controllers;
 
//ce use permet d'utiliser DB
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
 
class NissController extends Controller
{
    public function check_Niss(Request $request)
    {
        //ceci devrait se faire via un modèle (car DB !!!!)
        if(DB::table('pharmaciens')->where('registre_national', $_POST['niss'])->exists())
        {
            $retour = 1;
        }
        else{
            $retour = 0;
        }
        echo $retour;
 
    }
}
5- Ici, je ne modifie rien, donc normalemnt pas besoin de Filable ?

6- J'ai vu un exemple de code qui ressemble à ceci (hors de mon programme) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public function show($id)
    {
        $task = Task::find($id);
 
        return response()->json([
            'error' => false,
            'task'  => $task,
        ], 200);
    }
Je ne vois nulle part la méthode show dans un modèle, on appelle les méthodes d'Eloquent ?

7- Avez-vous quelque chose d'autre à me conseiller afin d'améliorer mon code (niveau sécurité par exemple) ?

Merci d'avance pour l'aide.