Route::get('/yonetim/duzenle/{id?}', Controllers1@birimDuzenle');
Route::get('/yonetim/duzenle/{durum?}', Controllers2@durumKontrol');Buradaki olay şundan kaynaklanıyor. Rota yolları aynı. Rota yollarını değiştireceksin.
Route::get('/yonetim/duzenle/{id?}', Controllers1@birimDuzenle');
Route::get('/yonetim/kontrol/{durum?}', Controllers2@durumKontrol');Bu şekilde kullanırsan çalışır mesela.
Ya da 2 controller kullanmak yerine tek controller kullanacaksın ve metodunda şöyle birşey yapacaksın.
Route::get('/yonetim/duzenle/{id?}/{islem?}', Controllers1@duzenle')public function duzenle($id, $islem){
if($islem=="kontrol"):
//kontrol işlemi buraya
elseif ($islem=="guncelle"):
//güncelleme işlemi buraya
else:
//böyle bir işlem yok
endif;
}
Sorunun sebebini biliyordum aslında ama route.php dosyasında, aynı rota yolunu kullanarak, rotaya ait bir fonksiyon içerisinde gelen get bilgisi $id ise ve null değilse, Controllers1@birimDuzenle ifadesi ile Controllers1'deki fonksiyonu çağırıp, değilse Controllers2@durumKontrol ifadesi ile Controllers2'deki fonksiyonu çağırabilir miyim diye düşündüm ama bir çözüm bulamadım. Tam olarak nasıl olur bilmiyorum ama şöyle bir şey düşünmüştüm.
Route::get('/yonetim/duzenle/{id?}/{durum?}', function($id,$durum){
if($id) {
// Controllers1@birimDuzenle fonksiyonu çağrılsın.
}
if($durum){
// Controllers2@durumKontrol fonksiyonu çağrılsın.
}
});
Ama düşündüğümü gerçekleştiremedim. Forumda bu tarz bir öneride bulunanlar çıkabilir diye düşünüp, soruyu sormuştum ama sizden başka ilgilenen olmadı maalesef. Neyse, sanırım dediğiniz gibi tek kontroller ve tek fonksiyon kullanarak işlemleri if-else içerisinde yapma yolunu seçeceğim. İlginiz için teşekkürler..