probléme récupération de données

Par thamer belfkih, il y a 10 ans


bonjour tt le monde , j'ai essayé de récupérer de données depuis la base et tout fonctionne bien , mais le probléme ce que je veut mettre les valeur qui circuler par bleu dans un tableau.

j'ai érire ce code :
$cl= DB::table('client_cours')->select('client_id')->get();
$freeclient = DB::table('client')->whereNotIn('id',$cl)->get();

mais tjrs il m'affiche cette erreur ci-dessous :

7 réponses

Azorgh, il y a 10 ans

Hello,

L'erreur parle d'elle même , il attend un string pour le paramètre du WhereIn. Cependant, c'est soit un string soit un array.
La tu lui file un objet (Une collection). Regarde du côté des méthodes disponible sur les collections, tu trouvera ton bonheur : http://laravel.com/docs/5.1/collections

thamer belfkih, il y a 10 ans

ok , merci

betaWeb, il y a 10 ans

Salut,

@PallMallShow +1

Essaye de faire ceci à ce moment là (code non testé je te laisse le soin de peaufiner si besoin est) :

$cl= DB::table('client_cours')->select('client_id')->get(); $ids = collect($cl)->toArray(); $freeclient = DB::table('client')->whereNotIn('id',array_values($ids))->get();
thamer belfkih, il y a 10 ans

voila la solution que je trouvais :

$cl= DB::table('client_cours')->lists('client_id'); list($keys, $values) = array_divide($cl); $freeclient = DB::table('client')->whereNotIn('id',$values)->get();
otakodes, il y a 10 ans

plus simple encore

// ->lists(ta_cle_ici) retourne bien un array de valeur et non pas une collection $cl = DB::table('client_cours')->lists('client_id'); $freeclient = DB::table('client')->whereNotIn('id',$cl)->get();

http://laravel.com/docs/5.1/queries#retrieving-results

otakodes, il y a 10 ans

ici le array_divide que tu as mis ne sert pas à grand chose car ->lists() retour un array de valeur
PS : c'est pas la première fois que je vois ça mais, en général si vous pouvez résoudre vos sujets vous même après quelques recherches à peine autant ne pas les poster lol

betaWeb, il y a 10 ans

@darkylmnx +1