mgsmus
Söylediğinizde mantıklı hocam fakat sade bir yapı deniyorum.
Aklıma şöyle bir şey geldi.
public function url(){
$url = request()->path();
$linkler = YLink::where('url',$url)->firstOrFail();
$tur = $linkler->tur;
$sId = $linkler->s_id;
if($tur == 'urun'){
}
if($tur == 'kategori'){
}
if($tur == 'marka'){
}
}
Bu şekilde gelen URL 'i yakalayıp tabloda sorguladıktan sonra controller'a yönlendirmek?
Normalde route'ta şu şekilde kullanıyorum ;
Route::get('/kategori/{kategori}','KategoriController@index')->name('kategori');
Route::get('/urun/{urun}','UrunController@index')->name('urun');
Tek bir tane route olsa şunun gibi ve
Ürün, marka, kategori ler için route olmasa bu yeni route umuzu en alta alsak var olanları bozmasa
Route::get('/{url}','UrlController@url')->name('url');
Gelen isteği tür'e göre diğer controllerlara yönlendirmek mantıklı olmaz mı?
if($tur == 'urun'){
}
Yalnız bu kısımda ne yapacağımı tam olarak çözemedim.
Laravel dökümanlarında şöyle bir şey buldum olmadı
return redirect()->action([UrunController::class, 'index']);
yada
return redirect()->action(
[UrunController::class, 'index'], ['url' => $url]
);
Ben şuanda ürün yada kategori controllerlarında şu şekilde çalışıyorum.
class UrunController extends Controller
{
public function index($urun)
{
$urun = Urun::where('url', $urun)->firstOrFail();
...
return view('ST.urun',compact('urun'));
}
}
Bu konu gerçekten çok aklıma takılan bir kısım yardımcı olabilirseniz çok sevinirim (biliyorum prensipleriniz var ve kurallara bağlı kalmayı seviyorsunuz fakat bahsettiğim yapıda görsel olarak çok güzel olacak)
Bu arada dediğiniz gibi tüm linklerim benzersiz. Yani gelen isteği sorgulattığımızda ya birşey bulacak yada error 404 olacak