Laravel routes/controller
I don't think you need to pass $request to the view, because you can access it anyway with Laravel's helper request() function.

For the routes you can use optional parameters, something like.

Route::get('/artigos/{id?}','GlobalController@gestorArtigos');


For the views and repetitive checks you can always use view composers or middlewares depends on the case really.

Eventually you could create trait with function to perform this repetitive task and include it in controller, for instance:

trait RepetitiveTask
{
    public function fireView($output, $id)
    {
        return ($id) ? $output-&gt;with('id', $id) : $output;
    } 
}

class YourController 
{
    use RepetitiveTask;

    public function gestorArtigos(Request $request) 
    {
        return $this-&gt;fireView(view('artigos.art_gestor_base'), $request-&gt;id);
    }
}


However i would use middlewares or view composers instead.

Whatever you do, make sure you keep the logic out of the views.