J'ai une liste déroulante pour afficher les valeurs de certains bâtiments: je ne sais pas comment envoyer la valeur à une nouvelle page pour afficher les valeurs de ce bâtiment sélectionné uniquement. j'obtiens l'erreur en essayant de charger la page avec le menu déroulant. Je ne suis pas sûr de ce que je fais mal.
voici mon index.blade:
public function custom($datacenter)
{
$assignees = assignee::findorfail('datacenter')->paginate(10);
return view('custom',compact('assignees'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
voici mon itinéraire Web: p>
Route::get('custom\{datacenter}', 'AssigneeController@custom')->name('custom');
et voici mon contrôleur:
<form action="{{ route('custom'),$datacenter }}">
<div class="form-group" id="dropdown">
<label>Data Center:</label>
<select name="datacenter" id="datacenter" class="form-group">
<option value="RDC46">RDC46</option>
<option value="RDC03">RDC03</option>
<option value="RDC05">RDC05</option>
<option value="DDC21">DDC21</option>
</select>
<button type="submit" class="btn btn-info">Submit</button>
</div>
J'obtiens l'erreur suivante:
Paramètres obligatoires manquants pour [Route: custom] [URI: personnalisé {datacenter}]. (Vue: /Users/Documents/Laravel/blog/resources/views/assignees/index.blade.php)
3 Réponses :
Essayez ce code,
<form action="{{ route('custom', $datacenter)}}">
<div class="form-group" id="dropdown">
<label>Data Center:</label>
<select name="datacenter" id="datacenter" class="form-group">
<option value="RDC46">RDC46</option>
<option value="RDC03">RDC03</option>
<option value="RDC05">RDC05</option>
<option value="DDC21">DDC21</option>
</select>
<button type="submit" class="btn btn-info">Submit</button>
</div>
</form>
j'obtiens une erreur différente maintenant, qui dit "variable non identifiée: centre de données"
Avez-vous passé la variable $ datacenter?
Je l'ai déclaré dans mon itinéraire comme suit: Route :: get ('custom / {datacenter}', 'AssigneeController @ custom') -> name ('custom'); et dans mon contrôleur: fonction publique personnalisée ($ datacenter)
Vous devriez essayer ceci:
<form action="{{ route('custom',[$datacenter]) }}">
<div class="form-group" id="dropdown">
<label>Data Center:</label>
<select name="datacenter" id="datacenter" class="form-group">
<option value="RDC46">RDC46</option>
<option value="RDC03">RDC03</option>
<option value="RDC05">RDC05</option>
<option value="DDC21">DDC21</option>
</select>
<button type="submit" class="btn btn-info">Submit</button>
</div>
</form>
Cela ressemble à une simple requête GET pour moi.
Modifiez votre formulaire comme suit:
Route::get('custom', 'AssigneeController@custom')->name('custom');
Dans votre contrôleur:
public function custom(Request $request)
{
// You will have access to the datacenter using $request->datacenter
$assignees = assignee::findorfail($request->datacenter)->paginate(10);
return view('custom',compact('assignees'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
Le centre de données n'est pas nécessaire segment de votre itinéraire:
<form action="{{ route('custom') }}">
<div class="form-group" id="dropdown">
<label>Data Center:</label>
<select name="datacenter" id="datacenter" class="form-group">
<option value="RDC46">RDC46</option>
<option value="RDC03">RDC03</option>
<option value="RDC05">RDC05</option>
<option value="DDC21">DDC21</option>
</select>
<button type="submit" class="btn btn-info">Submit</button>
</div>
</form>
oui, il est très simple d'afficher les entrées pour un centre de données spécifique au lieu de tous les autres centres de données. Je viens d'essayer votre solution, j'ai eu l'erreur suivante: trop peu d'arguments pour fonctionner App \ Http \ Controllers \ assigneeController :: custom (), 0 passé et exactement 1 attendu
@Abdul J'ai oublié de taper Request. Essayez maintenant :)