本文整理汇总了PHP中Categorie::whereIn方法的典型用法代码示例。如果您正苦于以下问题:PHP Categorie::whereIn方法的具体用法?PHP Categorie::whereIn怎么用?PHP Categorie::whereIn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Categorie
的用法示例。
在下文中一共展示了Categorie::whereIn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: show
/**
* Display the specified resource.
* GET /recettes/{id}
*
* @param int $id
* @return Response
*/
public function show($id)
{
$recette = Recette::find($id);
// On ajoute le pays pour la recette.
$recette['country'] = array();
$countries = Country::where('id', '=', $recette['idPays'])->firstOrFail();
$recette['country'] = $countries->nom;
// On ajoute les auteurs pour la recette.
$recette['authors'] = array();
$listIdauthors = DB::table('link_recette_author')->where('idRecette', '=', $recette['id'])->lists('idAutheur');
// On recherche les id de tous les auteurs de la recette
$autheurs = Autheur::whereIn('id', $listIdauthors)->lists('nom');
// on recherche tous les noms des auteurs de la recette.
$recette['authors'] = $autheurs;
// On ajoute les catégories pour la recette.
$recette['categories'] = array();
$listIdcategories = DB::table('link_recette_categorie')->where('idRecette', '=', $recette['id'])->lists('idCategorie');
$categories = Categorie::whereIn('id', $listIdcategories)->lists('nom');
$recette['categories'] = $categories;
// On ajoute les photos pour chaque recette.
$recette['photos'] = array();
$listIdphotos = DB::table('link_recette_photo')->where('idRecette', '=', $recette['id'])->lists('idPhoto');
$photos = Photo::whereIn('id', $listIdphotos)->lists('nom');
$recette['photos'] = $photos;
// On ajoute la liste de chaque categorie d'ingredients pour chaque recette.
$recette['ingredients'] = array();
$listIdCategorieIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->distinct()->lists('idCategorie');
$listIdIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->lists('idIngredient');
$listQuantIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->lists('idQuantite');
$listOrdreIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->lists('Ordre');
// On met dans un tableau le nombre d'ingredient par categorie
$listNbrIngrParCat = array();
foreach ($listIdCategorieIngred as $idCatIngre) {
$listNbrIngrParCat[sizeof($listNbrIngrParCat)] = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->where('idCategorie', '=', $idCatIngre)->distinct()->count();
}
//On récupère le nom des catégories.
$nomsCatIngredients = CategorieIngredient::whereIn('id', $listIdCategorieIngred)->lists('nom');
$ingredients = array();
foreach ($listIdIngred as $idIngredCurrent) {
$ing = Ingredient::where('id', '=', $idIngredCurrent)->firstOrFail();
array_push($ingredients, $ing->nom);
}
$ingredientsFinal = array();
for ($j = 0; $j < sizeof($listIdCategorieIngred); $j++) {
$ingredientsArray = array();
$offset = 0;
// on a créé un décalage pour parcourir la lsite des ingrédients.
if ($j != 0) {
$offset = $listNbrIngrParCat[$j - 1];
}
for ($i = 0 + $offset; $i < $listNbrIngrParCat[$j] + $offset; $i++) {
$ingredientsArray[$i] = array('Ordre' => $listOrdreIngred[$i], 'Ingredient' => $ingredients[$i], 'lien' => "");
}
$ingredientsFinal[$j] = array('Titre' => $nomsCatIngredients[$j], 'DetailsIngre' => $ingredientsArray);
}
$recette['ingredients'] = $ingredientsFinal;
// On ajoute la liste de chaque categorie de préparations pour la recette.
$recette['preparations'] = array();
$listIdCategoriePrepa = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->distinct()->lists('idCatPrepa');
$listIdPhrasePrepa = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->lists('idPhrasePrepa');
$listOrdrePhrase = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->lists('Ordre');
// On met dans un tableau le nombre de phrase de préparation par categorie
$listNbrPhraseParCat = array();
foreach ($listIdCategoriePrepa as $idCatPrepa) {
$listNbrPhraseParCat[sizeof($listNbrPhraseParCat)] = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->where('idCatPrepa', '=', $idCatPrepa)->distinct()->count();
}
//On récupère le nom des catégories de préparation.
$nomsCatPhrase = CategoriePrepa::whereIn('id', $listIdPhrasePrepa)->lists('nom');
$phrases = array();
foreach ($listIdPhrasePrepa as $idPhrasePrepaCurrent) {
$phrase = PhrasePrepa::where('id', '=', $idPhrasePrepaCurrent)->firstOrFail();
array_push($phrases, $phrase->phrase);
}
$phrasesFinal = array();
for ($j = 0; $j < sizeof($listIdCategoriePrepa); $j++) {
$phrasesArray = array();
$offset = 0;
// on a créé un décalage pour parcourir la lsite des ingrédients.
if ($j != 0) {
$offset = $listNbrPhraseParCat[$j - 1];
}
for ($i = 0 + $offset; $i < $listNbrPhraseParCat[$j] + $offset; $i++) {
$phrasesArray[$i] = array('Ordre' => $listOrdrePhrase[$i], 'Phrase' => $phrases[$i]);
}
$phrasesFinal[$j] = array('Titre' => $nomsCatPhrase[$j], 'Phrases' => $phrasesArray);
}
$recette['preparations'] = $phrasesFinal;
return Response::json($recette);
}