salut tout le monde jai un petit soucie d'insertion de données avec laravel 4 +jquery +ajax .lorsque je transamet un enregistrement via ajax a ma fonction pour enregistrer dans la base de données j'y trouve le double de l'enregistrement,de fois meme le triple voire le quatriple.
je n'arrive pas a retrouver le probleme,aidez moi svp.
mercie d'avance
public function getAdd($id = '')
{
$data_vue = array();
$data_sous_vue = array();
$data_sous_vue['menu']= 'transfert.menu';
if(!empty($id) AND Transfert::find($id) != null)
{
$data_sous_vue['titre_page']= 'Modifier transfert';
$transfert = Transfert::find($id);
}
else {
$data_sous_vue['titre_page']= 'Nouveau transfert';
$transfert = new Transfert();
}
$query_ville = City::all();
$liste_ville = array();
foreach( $query_ville as $ville) {
$liste_ville[$ville->id] = $ville->nom;
}
$data_vue['transfert'] = $transfert;
$data_vue['liste_ville'] = $liste_ville;
if(!empty($id) AND $id = 'success'){
return View::make('transfert.add', $data_vue);
}else{
return View::make('transfert.add', $data_vue)->nest('message','message',$data_sous_vue);
}
}
//=================================================================================================================
public function postAdd($id = '')
{
$reponse = array(
'erreur' => null,
'success' => null,
'load' => null
);
if( Request::ajax() ) {
//Regles de validation
$rules['montant'] = 'required|numeric|max:1000000000000';
$rules['city_receveur'] = 'required|exists:cities,id';
//===========================================
$rules['nom_envoyeur'] = 'required|max:255';
$rules['adresse_envoyeur'] = 'required|max:255';
$rules['tel_envoyeur'] = 'required|integer';
//===========================================
$rules['nom_receveur'] = 'required|max:255';
$rules['adresse_receveur'] = 'required|max:255';
$rules['tel_receveur'] = 'required|integer';
$val = Validator::make(Input::all(),$rules);
if($val->fails())
{
$reponse['erreur'] = '<div class="alert alert-danger">'.current($val->messages()->all()).'</div>';
echo json_encode($reponse);
}
else{
if(!empty($id) AND Transfert::find($id) != null){
$transfert = Transfert::find($id);
}
else{
$transfert = new Transfert();
}
$envoyeur_city = DB::table('agences')->where('id',Session::get('agence_id'))->pluck('city_id');
//$transfert->sexe = Input::get('sexe');
$transfert->user_id = Session::get('user_id');
$transfert->agence_id = Session::get('agence_id');
$transfert->banque_id = Session::get('banque_id');
$transfert->montant = Input::get('montant');
$transfert->envoyeur_city_id = $envoyeur_city;
$transfert->receveur_city_id = Input::get('city_receveur');
$transfert->nom_envoyeur =strtoupper(Input::get('nom_envoyeur'));
$transfert->adresse_envoyeur = Input::get('adresse_envoyeur');
$transfert->tel_envoyeur = Input::get('tel_envoyeur');
$transfert->piece_envoyeur = Input::get('piece_envoyeur');
$transfert->nom_receveur = strtoupper(Input::get('nom_receveur'));
$transfert->adresse_receveur = Input::get('adresse_receveur');
$transfert->tel_receveur = Input::get('tel_receveur');
$transfert->piece_receveur = Input::get('piece_receveur');
$transfert->save();
$reponse['success'] = '<div class="alert alert-success">Le transfert a bien été effectué</div>';
$reponse['load'] = Request::url();
echo json_encode($reponse);
}
}
else{
exit;
}
}
//===========================================================================================================
<script>
$(document).ready(function(){
$('.overlay').remove();
$('body').on('click', '#transferer', function(){
$('.box').append('<div class="overlay"><i class="fa fa-refresh fa-spin"></i></div>');
var lien = '{{URL::action('TransfertController@getAdd')}}';
var url = $('#form_transferer').attr('action');
var data = $('#form_transferer').serialize();
$.ajax({
'url' : url,
'data' : data,
'type' : 'POST',
'dataType' : 'json',
'success' : function(data){
if(data.erreur != null)
{
$('#form_message').html(data.erreur);
}
else if( data.success != null )
{
$('#form_message').html(data.success);
$('#sous_contenu').load(lien+'/success');
}
$('.overlay').remove();
}
});
return false;
});
});
</script>
J'ai pas lu ton code mais ce que j'aurais fait :
1) tu créer une fonction dans ton controller en post par exemple
2) tu paramètre ajax pour qu'il pointe dessus
3) tu créer un model (php artisan make:model "ton nom")
4) ton l'importe dans ton controller (use App\"ton nom";)
5) Dans ta fonction "ton nom"::create([
'name' => 'george',
'ville' => 'pompidou'
]);