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 ?
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 :
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 :
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) :
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.
Partager