iT邦幫忙

0

Laravel 路由傳參數問題

有一個Laravel路由傳參數問題要請教

路由的設定 :
web.php

Route::get('employeeEdit/{id}','EmployeeController@edit');

第一種呼叫方法:

<a href="{{ route('employeeEdit',['id'=>$user->id]) }}">{{ $user->name }}</a>

出現錯誤
Route [employeeEdit] not defined.

第二種呼叫方法:

<a href="{{ action('EmployeeController@edit',['id'=>$user->id]) }}">{{ $user->name }}</a>

可以顯示資料頁面

第三種呼叫:
直接在網址輸入 http://127.0.0.1/erp/public/employeeEdit/1
也可以正常顯示頁面

想請問能不能用employeeEdit名稱做為呼叫的路徑


感謝邦友回答 這邊整理 耿直小伙screenleon 的支持2種方法都可行喔

  1. 耿直小伙
Route::get('{id}',[
    'as'=>'employeeEdit',
    'uses'=>'EmployeeController@edit'
]);
  1. screenleon
Route::get('employeeEdit/{id}','EmployeeController@edit')->name('employeeEdit');
1
耿直小伙
iT邦新手 2 級 ‧ 2021-05-26 17:13:09
最佳解答

試試看將你的 route 命名

Route::get('employeeEdit/{id}', [
  'uses' => 'EmployeeController@edit',
  'as' => 'employeeEdit'
]);
sibulun iT邦新手 5 級 ‧ 2021-05-27 09:56:16 檢舉

這個方法可行,稍微改成

Route::get('{id}',[
    'as'=>'employeeEdit',
    'uses'=>'EmployeeController@edit'
]);
0
Route::get('employeeEdit/{id}','EmployeeController@edit');

改成

Route::get('employeeEdit/{id?}','EmployeeController@edit');

或是另建一個路由來處理

Route::get('employeeEdit','EmployeeController@edit');
sibulun iT邦新手 5 級 ‧ 2021-05-26 13:23:33 檢舉

加了問號還是一樣 先暫時用action吧 cc

0
screenleon
iT邦新手 2 級 ‧ 2021-05-27 08:20:21

在後面新增

Route::get('employeeEdit/{id}','EmployeeController@edit')->name('employeeEdit');
sibulun iT邦新手 5 級 ‧ 2021-05-27 09:59:16 檢舉

這個也可以耶~ 感謝 但最佳解答只能設定一個 拍謝 改成新的一篇 把2種方法都整理好了

我要發表回答

立即登入回答