mercredi 7 octobre 2015

Laravel 5 - link to named route with parameter

I'm trying to use REST-ful routing with Laravel 5.1.19, but I cannot generate a link to a named route and inject its parameters. Here's my routes.php file:

Route::resource('page', '\App\Http\Controllers\Admin\Page');

The output from php artisan route:list: +--------+----------+------------------------------+----------------------+---------------------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+------------------------------+----------------------+---------------------------------------------------------------+------------+ | | GET|HEAD | / | | Closure | | | | GET|HEAD | _debugbar/assets/javascript | debugbar.assets.js | Barryvdh\Debugbar\Controllers\AssetController@js | | | | GET|HEAD | _debugbar/assets/stylesheets | debugbar.assets.css | Barryvdh\Debugbar\Controllers\AssetController@css | | | | GET|HEAD | _debugbar/clockwork/{id} | debugbar.clockwork | Barryvdh\Debugbar\Controllers\OpenHandlerController@clockwork | | | | GET|HEAD | _debugbar/open | debugbar.openhandler | Barryvdh\Debugbar\Controllers\OpenHandlerController@handle | | | | GET|HEAD | admin | | Closure | | | | POST | page | page.store | \App\Http\Controllers\Admin\Page@store | | | | GET|HEAD | page | page.index | \App\Http\Controllers\Admin\Page@index | | | | GET|HEAD | page/create | page.create | \App\Http\Controllers\Admin\Page@create | | | | PATCH | page/{page} | | \App\Http\Controllers\Admin\Page@update | | | | PUT | page/{page} | page.update | \App\Http\Controllers\Admin\Page@update | | | | DELETE | page/{page} | page.destroy | \App\Http\Controllers\Admin\Page@destroy | | | | GET|HEAD | page/{page} | page.show | \App\Http\Controllers\Admin\Page@show | | | | GET|HEAD | page/{page}/edit | page.edit | \App\Http\Controllers\Admin\Page@edit | | +--------+----------+------------------------------+----------------------+---------------------------------------------------------------+------------+

So my understanding is that if I want to link to the Edit method for a Page with ID = 1, I'd have to do this:

<a href="{!! route('page.edit', ['page' => $page->id]) !!}">{{$page->title}}</a>

However, when I put this in a blade template, it produces the following string: http://localhost:8181/page//edit (notice the missing parameter between 'page' and 'edit') According to Artisan's output I should supply a 'page' parameter, which I am, but it's not picking it up. What am I doing wrong? Thanks!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire