Skip to content
Advertisement

Laravel variable not getting passed to route

In my page, I have the following anchor:

<a href="{{ route('blogtitles.edit', $blogTitle) }}">Edit</a>

which links to the following function in the controller:

public function edit(BlogTitle $blogTitle)
{
    return view('blogtitles.edit')->with('blogTitle', $blogTitle);
}

and then the blogtitles/edit.blade.php file simply contains:

{{ $blogTitle }}

However, in the edit.blade.php, the variable ‘$blogTitle` is empty, even though I know that it isn’t empty in the original page where it is passed from. Any idea at all what is going wrong? I have other anchors that do exactly the same thing and work fine, so no clue what the problem is.

The url to get to the edit.blade.php is http://localhost:8000/blogtitles/1/edit and the routes are:

PUT|PATCH | blogtitles/{blogtitle}      | blogtitles.update  | AppHttpControllersBlogTitlesController@update                   | web                                                |
GET|HEAD  | blogtitles/{blogtitle}/edit | blogtitles.edit    | AppHttpControllersBlogTitlesController@edit                     | web                                             

Advertisement

Answer

The problem was actually in the function in the controller autogenerated by php artisan. The $blogTitle needed to be $blogtitle so the function became:

public function edit(BlogTitle $blogtitle)
{
    return view('blogtitles.edit')->with('blogTitle', $blogtitle);
}

Thanks to user lagbox for prompting me to try this!

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement