Kent Abrio
Tengo una vista de tabla en la que puedo hacer clic en el icono de un botón y redirigir a otra página que lleva el identificación de la fila en la que se ha hecho clic.
@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="https://stackoverflow.com/questions/33266316/{{ URL::to("visit/'.$patient->pID) }}">
<img src="../images/viewvisit.png" style="width:30px; height:30px;">
</a>
</td>
<td>
<a href="https://stackoverflow.com/questions/33266316/{{ URL::to("addeditvisit/'.$patient->pID) }}">
<img src="../images/visit.png" style="width:30px; height:30px;">
</a>
</td>
<td>
<a href="https://stackoverflow.com/questions/33266316/{{ URL::to("editpatient/'.$patient->pID) }}">
<img src="../images/update.png" style="width:30px; height:30px;">
</a>
</td>
<td>
<a href="https://stackoverflow.com/questions/33266316/{{ URL::to("deletepatient/'.$patient->pID) }}">
<img src="../images/delete.png" style="width:30px; height:30px;">
</a>
</td>
</tr>
@endforeach
lo que quiero es conseguir el identificación de la URL y colóquelo en una variable para que pueda utilizarlo en mi otra página.
Actualmente estoy atascado con esta función de controlador.
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
]);
}
verem dugeri
esto es tarde Pero para el beneficio de otros como yo;
Si no tiene que hacerlo en un método como se muestra en las respuestas anteriores, a partir de Laravel 5.0 (no estoy seguro acerca de las versiones anteriores), puede hacerlo
$request->route('id');
Eso devuelve el valor de la id
parámetro en la ruta.
harry bosh
O simplemente úsalo dentro de Blade: {{ request()->route('id') }}
Básicamente, cuando estás definiendo las rutas, usas algo llamado parámetros de rutaalgo como esto
Route::get('/visit/{id}', 'Controller@someMethod');
Esta identificación estará disponible como un parámetro en su función de controlador,
public function someMethod($id) {
// you have the id here
}
-
¿Qué pasa si no estás en esa página?
–Dustin Graham
06/10/2017 a las 19:40
Bhale Dino
Ejemplo sencillo:
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
El truco es declarar la estructura de la URL en las rutas que incluyen la identificación, por ejemplo:
// {{ URL::to('editpatient/'.$patient->pID) }}
Route::get('editpatient/{patientId}', 'MyController@index');
Luego, simplemente inyecte la identificación en la función del controlador:
public function index($patientId){
// $patientId is the variable from url
}
Conceder
Consulte la pregunta respondida sobre cómo obtener un parámetro de una ruta. Pero si te topaste con este antiguo hilo de Laravel buscando cómo recuperar un modelo por su ID, la forma más sencilla es crear una instancia del modelo en el parámetro de solicitud del controlador:
Route::get('/retrieve_product/{product}', 'SearchController@getProduct');
Luego, en su controlador, simplemente necesita:
use App\Product;
class SearchController extends Controller
{
public function getProduct( Product $product ) {
return $product;
}
}
Eso es todo. Sin encontrar, sin dónde, sin obtener, sin primero, etc.
Entonces, en este ejemplo, si visitas /retrieve_product/1
se le devuelve el primer producto.
Myat Htut
Route::get('post/user/{id}','ProductController@allpost')->where('id', '[0-9]+');
Controlador
public function allpost($id)
{
$products = Product::where('uploadby', $id)->orderBy('created_at','desc')->paginate(5); <br>
return view('product.user_product')->with('products', $products);
}
¿Cómo definiste tus rutas?
– Akshendra Pratap
21/10/2015 a las 18:13