Basic Route

Route::view('/','home');

Route::view('/content', 'content');

Route::get('blog/{id}/{name}', function ($id, $name) {
    return $id.$name;
});

Passing Parameters

Route::get('blog/{id}', function ($id) {
    
    $pages = [

//Array key value pairs
        1 => [
            'title' => 'hello from page 1'
        ],
        2 => [
            'title' => 'hello from page 2'
        ],
        3 => [
            'title' => 'hello from page 3'
        ],
    ];
    return view('blog', ['data' => $pages[$id]]);
});
  • Add inside blog.blade.php
{{ $data['title'] }}

Optional Parameter plus default value

{welcome?}

//like:
//$welcome = 1 is the default value
Route::get('blog/{id}/{welcome?}', function ($id, $welcome = 1)

//Full optional parameters code example

Route::get('/blog/{id}/{welcome?}', function ($id, $welcome = 1) {
    $pages = [
        1 => [
            'title' => 'from page 1',
        ],
        2 => [
            'title' => 'from page 2',
        ],
    ];
    $welcomes = [1 => '<b>Hello</b> ', 2 => 'Welcome to '];
    return view('blog', [
        'data' => $pages[$id],
        'welcome' => $welcomes[$welcome],
    ]);
});

//And then on blog.blade.php page add:
{!! $welcome !!}{{ $data['title'] }}