Laravel 5 erhält ID von URL

Lesezeit: 4 Minuten

Benutzeravatar von Kent Abrio
Kent Abrio

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

@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 

Was ich will, ist das zu bekommen Ausweis aus der URL und füge sie in eine Variable ein, 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
    ]);
}

  • Wie haben Sie Ihre Routen definiert?

    – Akshendra Pratap

    21. Oktober 2015 um 18:13 Uhr

Benutzeravatar von Verem Dugeri
Verem Dugeri

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

Wenn Sie dies nicht mit einer Methode tun müssen, wie die obigen Antworten gezeigt haben, können Sie dies ab Laravel 5.0 (bei früheren Versionen nicht sicher) tun

$request->route('id');

Das gibt den Wert von zurück id Parameter auf der Route.

Benutzeravatar von Harry Bosh
Harry Bosch

Oder verwenden Sie es einfach in Blade: {{ request()->route('id') }}

Grundsätzlich verwenden Sie beim Definieren der Routen etwas namens Streckenparameteretwas wie das

Route::get('/visit/{id}', 'Controller@someMethod');

Diese ID wird als Parameter in Ihrer Handler-Funktion verfügbar sein,

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

  • Was ist, wenn Sie nicht auf dieser Seite sind?

    – Dustin Graham

    6. Oktober 2017 um 19:40 Uhr

Benutzeravatar von Bhale Dino
Bahale Dino

Einfaches Beispiel:

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

Der Trick besteht darin, die Struktur der URL bei Routen einschließlich der ID zu deklarieren, zum Beispiel:

// {{ URL::to('editpatient/'.$patient->pID) }}
Route::get('editpatient/{patientId}', 'MyController@index');

Fügen Sie dann einfach die ID in die Funktion des Controllers ein:

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

Benutzeravatar von Grant
Gewähren

Bitte beachten Sie die beantwortete Frage, wie Sie einen Parameter von einer Route erhalten. Aber wenn Sie über diesen alten Laravel-Thread gestolpert sind, der sucht, wie Sie ein Modell anhand seiner ID abrufen können, besteht die einfachste Möglichkeit darin, das Modell im Anforderungsparameter des Controllers zu instanziieren:

Route::get('/retrieve_product/{product}', 'SearchController@getProduct');

Dann brauchen Sie in Ihrem Controller einfach:

use App\Product;

class SearchController extends Controller
{
    public function getProduct( Product $product ) {
        return $product;
    }
}

Das ist es. No find, no where, no get, no first usw.

Also, in diesem Beispiel, wenn Sie besuchen /retrieve_product/1 das erste Produkt wird an Sie zurückgeschickt.

Benutzeravatar von Myat Htut
Myat Htut

Route::get('post/user/{id}','ProductController@allpost')->where('id', '[0-9]+');

Regler

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

1444470cookie-checkLaravel 5 erhält ID von URL

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy