File: D:/HostingSpaces/SBogers10/reiskick.komma.nl/app/Http/Wildcards/CountriesWildcard.php
<?php
namespace App\Http\Wildcards;
use App\Articles\Models\ArticleTranslation;
use App\Countries\Country;
use App\MustDos\Models\MustDoTranslation;
use App\Overnights\Models\OvernightTranslation;
use App\ToDos\Models\ToDoTranslation;
use Illuminate\Http\Request;
class CountriesWildcard implements WildcardInterface
{
/**
* @param Request $request
* @param string $route
* @param string $tail
* @return Request
*/
public function handle(Request $request, string $route, string $tail): Request
{
$tailParts = explode('/', $tail);
// Check if the first segment is found in the TranslatableModel
$model = Country::where('slug', $tailParts[0])
->first();
// If found then send to the show method
if($model)
{
if(sizeof($tailParts) == 1 ) {
//Set the request URI and the original path
$request->server->set('REQUEST_URI', 'countries/' . $model->id);
return $request;
}
if(sizeof($tailParts) == 2 ) {
if($subModel = MustDoTranslation::where('slug', $tailParts[1])->first()){
$request->server->set('REQUEST_URI', 'must_dos/' . $subModel->must_do_id);
return $request;
}
if($subModel = ToDoTranslation::where('slug', $tailParts[1])->first()){
$request->server->set('REQUEST_URI', 'to_dos/' . $subModel->to_do_id);
return $request;
}
if($subModel = OvernightTranslation::where('slug', $tailParts[1])->first()){
$request->server->set('REQUEST_URI', 'overnights/' . $subModel->overnight_id);
return $request;
}
if($subModel = ArticleTranslation::where('slug', $tailParts[1])->first()){
$request->server->set('REQUEST_URI', 'articles/' . $subModel->article_id);
return $request;
}
}
}
// // Bind filters to the request and set uri to the filter function of the post controller
// $request->merge(['filters' => $tail]);
//
// //Set the request URI and the original path
// $request->server->set('REQUEST_URI', 'posts/filters');
return $request;
}
}