我有一個復雜的問題。我可以使用一些幫助。
我有一個由以下函式處理的表單:
$module = request('module');
$classe = request('classe');
$horaire = request('horaire');
$date = request('date');
$students = DB::select('SELECT * FROM `etudiants` WHERE etudiants.id_classe = '.$classe);
return view('g_absence.absence',['module'=> $module, 'classe'=>$classe,'horaire'=>$horaire,'date'=>$date,'students'=>$students]);
我采用了 $module、$class、$horaire、$date 和 $students 的值,并且需要在不同的視圖中使用它們:g_absence.absence。這作業正常,當回傳視圖時,我可以訪問所述變數。
問題是,在 g_absence.absence 視圖中,我還有另一個表單也需要處理,因為即使回傳了不同的視圖,url 也保持不變,我不能為同一路徑發布兩個帖子。
網頁.php:
Route::get('/testboy', [App\Http\Controllers\g_absence::class,'index'])->name('marquer');
Route::post('/testboy',[App\Http\Controllers\g_absence::class, 'marquer']);
Route::post('/testboy',[App\Http\Controllers\g_absence::class, 'ajoutabsence']);
- 第一行是向表單頁面發送一個簡單的回傳視圖
- 第二個處理該視圖中的表單
- 第三個,我希望它處理 g_absence.absence 視圖中的表單,但它們共享相同的路徑。
如果我不清楚,請原諒,我是 Laravel 的初學者
uj5u.com熱心網友回復:
您的問題是對不同的方法使用相同的路由,基本上每次使用“/testboy”操作時都會執行第一條路由,這就是為什么您的第二個函式永遠不會被呼叫的原因。
您可以通過更改網址來解決此問題,例如:
Route::post('/testboy-marquer',[App\Http\Controllers\g_absence::class, 'marquer']);
Route::post('/testboy-ajoutabsence',[App\Http\Controllers\g_absence::class, 'ajoutabsence']);
或者,您可以根據您的函式呼叫,通過將附加引數路徑到您的 url 來使用一個同時處理一個 url 的函式:
Route::post('/testboy?type=marquer',[App\Http\Controllers\g_absence::class, 'ajoutabsence']);
在您的函式中檢查型別:
if(request('type') == 'marquer') {
execute marquer logic here...
} else {
execute absence logic here...
}
uj5u.com熱心網友回復:
使用具有兩個功能的方法和路徑是錯誤的,但是如果您想以某種方式同時使用這兩個路由,我不建議您使用相同的方法和路徑,您必須讓請求像中間件一樣在您的第一個代碼塊中通過而不是回傳一個看法。
推薦的方法是有 2 條具有不同路徑的路由,或者至少有一個帶有引數的路由,您可以通過該引數確定必須執行的代碼塊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/416431.html
標籤:
