HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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;
    }

}