web-dev-qa-db-de.com

Laravel 5 ID von URL erhalten

Ich habe eine Tabellenansicht, in der ich auf ein Schaltflächensymbol klicken und auf eine andere Seite umleiten kann, die die id der angeklickten Zeile enthält.

@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 

ich möchte die id von der URL abrufen und in eine Variable einfügen, damit ich sie auf meiner anderen Seite verwenden kann.

Ich stecke derzeit mit dieser Controller-Funktion fest.

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
    ]);
}
6
Kent Abrio

Grundsätzlich verwenden Sie beim Definieren der Routen die Parameterroute parameter, etwa die folgende

Route::get('/visit/{id}', '[email protected]');

Diese ID steht als Parameter in Ihrer Handler-Funktion zur Verfügung.

public function someMethod($id) {
    // you have the id here
}
12

Oder verwenden Sie es einfach in der Klinge

{{request()->route('id')}}

7
Harry Bosh

Das ist spät. Aber zum Wohle anderer wie mir;

Wenn Sie dies nicht in einer Methode tun müssen, wie die Antworten oben gezeigt haben, können Sie Folgendes tun: Ab Laravel 5.0 (Nicht sicher bei früheren Versionen) 

$request->route('id');

Dies gibt den Wert des Parameters id auf der Route zurück.

2
Daniel Verem

Der Trick besteht darin, die URL-Struktur auf Routen mit der ID anzugeben, zum Beispiel:

// {{ URL::to('editpatient/'.$patient->pID) }}
Route::get('editpatient/{patientId}', '[email protected]');

Dann geben Sie einfach die ID in die Controller-Funktion ein:

public function index($patientId){
    // $patientId is the variable from url
}
1
manix

Einfaches Beispiel:

as link=>   example.com/user/1

as rout=> Route::get('user/{id}', '[email protected]');

as UserController function 

public function user($id){

    echo $id;

}

output => 1
0
Bhale Dino
Route::get('post/user/{id}','[email protected]')->where('id', '[0-9]+');

Controller

public function allpost($id)
    {
        $products = Product::where('uploadby', $id)->orderBy('created_at','desc')->paginate(5); <br>
        return view('product.user_product')->with('products', $products);
    }
0
Myat Htut