Je crée un babillard en utilisant Laravel et je souhaite que les articles du babillard soient affichés en sélectionnant une année (par exemple, lorsque 2022 est sélectionné, seuls les articles publiés en 2022 seront affichés). J'ai fait référence à beaucoup de questions similaires et au site officiel de Laravel mais cela ne s'est pas bien passé, voici ce que j'ai maintenant :
Sélectionnez "blade.php":
<select name="article_year" onchange=""> @foreach ($year as $item) <option value="{{ $item->id}}">{{ $item->name}}</option> @endforeach </select>
index() dans "Controller.php":
$article_year = $request->get('article_year'); $data['news'] = (new Article())->where('user_year', $article_year)->get();
Quelqu'un peut-il me dire quel est le problème ? Merci!
Quelques sites internet référencés :
Laravel - Requête HTTP
Discussion Laravel - Comment obtenir de la valeur à partir de la boîte de sélection
Transmettre la valeur sélectionnée de la vue au contrôleur dans Laravel
Code complet du contrôleur
<?php namespace App\Http\Controllers; use App\Article; use App\Catalog; use App\User; use App\Http\Controllers\Controller; use Request; use App; class HomeController extends Controller { public function __invoke(){} public function index() { $locale = Request::segment(1); $view = 'home'; $article_year = $request->get('article_year'); $data['year'] = (new Catalog())->where('catalog_type_id', 3)->where('is_active', 1)->orderBy('sort_num', 'asc')->get(); $data['news_pin'] = (new Article())->where('is_active', 1)->where('user_year', $article_year)->orderBy('sort_num', 'desc')->get(); $data['news'] = (new Article())->where('is_active', 0)->where('user_year', $article_year)->orderBy('sort_num', 'desc')->get(); return view($view, $data); } }
Merci à tous pour vos réponses, tout le monde m'a donné des idées différentes et m'a aidé à trouver la réponse. Mon code est en cours d'exécution :
routage-web.php
blade.php
Contrôleur
Je pense qu'il vous manque certaines dépendances en passant la méthode index... c'est pourquoi vous obtenez l'erreur de serveur 500
Dans votre méthode d'indexation, vous ne transmettez pas la variable $request..Je pense que le code devrait être comme ceci
et ajoutez cette ligne en haut de votre fichier contrôleur