J'ai une vue sous forme de tableau dans laquelle je peux cliquer sur une icône de bouton et rediriger vers une autre page contenant leidde la ligne sur laquelle l'utilisateur a cliqué.
@foreach ($patients as $patient)
<tr>
<td>{{ $patient->pID }}</td>
<td>{{ $patient->pName }}</td>
<td>{{ $patient->pAddress }}</td>
<td>{{ $patient->pBday }}</td>
<td>{{ $patient->pPhone}}</td>
<td>{{ $patient->pEcon }}</td>
<td>{{ $patient->pDreg }}</td>
<td></td>
<td>
<a href="{{ URL::to('visit/'.$patient->pID) }}">
<img src="../images/viewvisit.png" style="width:30px; height:30px;">
</a>
</td>
<td>
<a href="{{ URL::to('addeditvisit/'.$patient->pID) }}">
<img src="../images/visit.png" style="width:30px; height:30px;">
</a>
</td>
<td>
<a href="{{ URL::to('editpatient/'.$patient->pID) }}">
<img src="../images/update.png" style="width:30px; height:30px;">
</a>
</td>
<td>
<a href="{{ URL::to('deletepatient/'.$patient->pID) }}">
<img src="../images/delete.png" style="width:30px; height:30px;">
</a>
</td>
</tr>
@endforeach
ce que je veux, c'est obtenir le id de l'URL et le mettre dans une variable afin que je puisse l'utiliser comme autre page.
Je suis actuellement coincé avec cette fonction de contrôleur.
public function index(Request $request) {
$doctors = Doctor::where('dStatus', 0)
->lists('dName', 'dID');
$beds = Bed::where('bStatus', 0)
->lists('bName', 'bID');
$patient = Patient::patient();
// $uri = $request->path('patient');
return View::make('pages.addeditvisit', [
'doctors'=>$doctors,
'beds'=>$beds,
'patient'=>$patient->pID
]);
}
Fondamentalement, lorsque vous définissez les itinéraires, vous utilisez quelque chose appelé paramètres de route, quelque chose comme ceci
Route::get('/visit/{id}', 'Controller@someMethod');
Cet identifiant sera disponible en tant que paramètre dans votre fonction de gestionnaire,
public function someMethod($id) {
// you have the id here
}
C'est tard. Mais pour le bénéfice des autres comme moi;
Si vous n’avez pas à le faire avec une méthode telle que celle indiquée dans les réponses ci-dessus, à partir de Laravel 5.0 (vous n'êtes pas sûr des versions précédentes),
$request->route('id');
Cela renvoie la valeur du paramètre id
sur la route.
L'astuce consiste à déclarer la structure de l'URL sur les routes incluant l'id, par exemple:
// {{ URL::to('editpatient/'.$patient->pID) }}
Route::get('editpatient/{patientId}', 'MyController@index');
Ensuite, il suffit d'injecter l'identifiant dans la fonction du contrôleur:
public function index($patientId){
// $patientId is the variable from url
}
Exemple simple:
as link=> example.com/user/1
as rout=> Route::get('user/{id}', 'UserController@user');
as UserController function
public function user($id){
echo $id;
}
output => 1
Route::get('post/user/{id}','ProductController@allpost')->where('id', '[0-9]+');
Manette
public function allpost($id)
{
$products = Product::where('uploadby', $id)->orderBy('created_at','desc')->paginate(5); <br>
return view('product.user_product')->with('products', $products);
}