Merhaba arkadaşlar,
Laravel 5.3 ile geliştirdiğim bir projede rota sorunu yaşıyorum. Uzun zaman oldu çok deneme yaptım çözüm üretemedim. Önerileriniz olursa denemek istiyorum.
Öncelikle amacımı belirteyim; Yapmak istediğim resource ile oluşan crud linklerinde bir ön ek kullanmak. Aşağıda gördüğünüz gibi bir yapım var. Bu linkte "isg" yazan yer route:resource ile oluşturduğum linklere ön ek olarak görmek istediğim değer. Oraya çeşitli rapor tipleri gelebilir.
http://localhost:8000/superadmin/institutions/0281384D-FCAA-B2AA-C55D-7691D89C491B/companies/E161C4C3-D299-D58F-543C-053F066D4A25/periods/5EFE7332-E0B6-E719-460F-95F6403ED952/reports/isg
Route::resource('/institutions/{institution_guid}/companies/{company_guid}/periods/{period_guid}/reports/{report_type}', 'ReportController', ['as' => 'institutions.companies.periods.reports']);
Eğer rapor tipini belirmeden resource crud linkler oluşturursam sistem sıkıntısız çalışıyor ama benim işime yaramıyor. Rapor tipini linkte göstermeden hidden ile formdan göndererek aslında tüm işlemleri halledebiliyorum ama bu kez linkte rapor tipi olmadığı için linki kopyalayıp birine gönderemiyorum.
http://localhost:8000/superadmin/institutions/0281384D-FCAA-B2AA-C55D-7691D89C491B/companies/E161C4C3-D299-D58F-543C-053F066D4A25/periods/5EFE7332-E0B6-E719-460F-95F6403ED952/reports
Bu şekilde olduğunda raporlardan hangi tipi çekeceğimi yakalayamıyorum.
Yukarıdaki resource yapısını kullanınca normal crud yapısına göre /reports değerinden sonra gelen değer raporun kendi id değeri olup show sayfasına gitmesi gerektiğinden rota hata veriyor. Ben de şöyle bir çözüm üretmeye çalıştım.
Route::get('/institutions/{institution_guid}/companies/{company_guid}/periods/{period_guid}/reports/{report_type}/{guid}/edit', ['as' => 'institutions.companies.periods.reports.{report_type}.edit', 'uses' => 'ReportController@edit']);
Route::put('/institutions/{institution_guid}/companies/{company_guid}/periods/{period_guid}/reports/{report_type}/{guid}', ['as' => 'institutions.companies.periods.reports.{report_type}.update', 'uses' => 'ReportController@update']);
Route::get('/institutions/{institution_guid}/companies/{company_guid}/periods/{period_guid}/reports/{report_type}/{guid}', ['as' => 'institutions.companies.periods.reports.{report_type}.show', 'uses' => 'ReportController@show']);
Route::delete('/institutions/{institution_guid}/companies/{company_guid}/periods/{period_guid}/reports/{report_type}', ['as' => 'institutions.companies.periods.reports.{report_type}.destroy', 'uses' => 'ReportController@destroy']);
Rota yapısını böyle elle oluşturup bir rapor düzenlemeye çalıştığımda da şu hatayı alıyorum.
http://localhost:8000/superadmin/institutions/0281384D-FCAA-B2AA-C55D-7691D89C491B/companies/E161C4C3-D299-D58F-543C-053F066D4A25/periods/5EFE7332-E0B6-E719-460F-95F6403ED952/reports/isg/E40370F5-BEDC-E543-0328-2C1D7A71592B/edit
Route pattern "/superadmin/institutions/{institution_guid}/companytypes/{company_type}/{{company_type}}" cannot reference variable name "company_type" more than once.
.
Defalarca kontrol ettim, hatta aynı işi yapmam gereken bir başka modülde de denedim ama company_type tek olmasına rağmen çift görüyor.
Birkaç modülde crud işlemlerine ön ek kullanmam gerekiyor. Webde buna benzer çift değişken gelme hatalarına örnek birkaç konu var ama olar yazılımcının hatalı yazımlarından kaynaklı sorunlar. Yine de cevapları okuyarak test ettim ama bir sonuç elde edemedim.
Resource/crud link yapısını ön ek ile nasıl kullanabilirim ?
İlgilenen olursa pc ye bağlanıp canlı senaryo üzerinden sıkıntıyı gösterebilirim.
Şimdiden teşekkürler..