ボタンビューをクリックして、クリックされた行の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
]);
}
これは遅いです。しかし、私のような他の人のために。
上記の回答に示されているように、Laravel 5.0(以前のバージョンについては不明)のような方法で行う必要はありません。
$request->route('id');
これは、ルート上のid
パラメーターの値を返します。
または、ブレード内で使用するだけです
{{request()->route('id')}}
基本的にルートを定義するときは、ルートパラメーターと呼ばれるものを使用します。
Route::get('/visit/{id}', 'Controller@someMethod');
このIDは、ハンドラー関数のパラメーターとして使用できますが、
public function someMethod($id) {
// you have the id here
}
トリックは、たとえば、idを含むルートでurlの構造を宣言することです。
// {{ URL::to('editpatient/'.$patient->pID) }}
Route::get('editpatient/{patientId}', 'MyController@index');
次に、コントローラーの関数にidを挿入します。
public function index($patientId){
// $patientId is the variable from url
}
簡単な例:
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]+');
コントローラー
public function allpost($id)
{
$products = Product::where('uploadby', $id)->orderBy('created_at','desc')->paginate(5); <br>
return view('product.user_product')->with('products', $products);
}