web-dev-qa-db-ja.com

Laravel 5 URLからIDを取得

ボタンビューをクリックして、クリックされた行のidを含む別のページにリダイレクトできるテーブルビューがあります。

@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 

私が望んでいるのは、URLからidを取得し、他のページで使用できるように変数に入れることです。

現在、このコントローラー機能にこだわっています。

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

これは遅いです。しかし、私のような他の人のために。

上記の回答に示されているように、Laravel 5.0(以前のバージョンについては不明)のような方法で行う必要はありません。

$request->route('id');

これは、ルート上のidパラメーターの値を返します。

6
Daniel Verem

または、ブレード内で使用するだけです

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

17
Harry Bosh

基本的にルートを定義するときは、ルートパラメーターと呼ばれるものを使用します。

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

このIDは、ハンドラー関数のパラメーターとして使用できますが、

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

トリックは、たとえば、idを含むルートでurlの構造を宣言することです。

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

次に、コントローラーの関数にidを挿入します。

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

簡単な例:

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
0
Bhale Dino
Route::get('post/user/{id}','ProductController@allpost')->where('id', '[0-9]+');

コントローラー

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