[英]Laravel routes are not working with parameters
我在web.php中聲明了兩個laravel路由,但是面臨404錯誤。
我想訪問控制器中的路由參數值,並且基於此選擇,我需要基於參數執行一些處理。
我的web.php代碼
Route::group(
['namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'admin.', 'middleware' => ['role:admin']],
function () {
Route::get('transaction-verified/{user-id}/{tran-id}',['uses' => 'ForgotPassTranVerifyController@transaction_verified'])->name('transaction_verified');
});
我的控制器代碼
public function transaction_verified($id,$tran_id)
{
$user = User::find($id);
if($user)
{
$user->status = 'active';
$user->save();
$response = $this->broker()->sendResetLink(
$user->email
);
echo'<pre>'; print_r($response); exit;
$transaction = ForgotPassFineTransaction::find($tran_id);
if($transaction)
{
$transaction->status = 'valid';
$transaction->save();
}
$this->message = true;
return redirect(route('admin.transaction-verify'));
}
這就是我所說的路線
return '<a href="' . route('admin.transaction_verified', ['id'=> $row->id, 'tran-id'=> $row->tran_id]) . '" class="btn btn-info btn-rectangle"
data-toggle="tooltip" data-original-title="Edit">Send Email</a>
我想訪問路線參數,並且基於參數需要完成一些任務。 但是我正面臨404錯誤。 我無法弄清楚哪里出了問題?
我可以看到一些問題:
根據Laravel docs ,路由參數:
...應該由字母字符組成,並且不能包含-字符。 代替使用-字符,而使用下划線(_)。
因此,諸如{user-id}
和{tran-id}
類的參數名稱將不起作用。 將它們更改為(例如) {user_id}
和{tran_id}
。
您的路線定義在URL中包含這兩個參數:
.../{user-id}/{tran-id}...
使用route()
生成路由時,必須給它提供兩個具有相同名稱的參數。 但是你的代碼給了它一個id
:
...['id'=> $row->id, 'tran-id'=> $row->tran_id]...
您需要將該id
更改為user-id
,或者考慮上述問題user_id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.