php - Laravel routes error -
here 2 routes have:
route::resource('tournament/{tourid}/phase/{phaseid}/bets', 'phasecontroller@getphasebets'); route::resource('tournament/{tourid}/phase/{phaseid}', 'phasecontroller@getphaseinfo');
but getting exception when trying run api:
route pattern "/api/tournament/{tourid}/phase/{phaseid}/{{phaseid}}" cannot reference variable name "phaseid" more once.
from did {{phaseid}}
? why getting error?!
tl;dr:
since defining routes straight pointing controller actions, should using:
route::get('tournament/{tourid}/phase/{phaseid}/bets', 'phasecontroller@getphasebets'); route::get('tournament/{tourid}/phase/{phaseid}', 'phasecontroller@getphaseinfo');
longer version:
to utilize route::resource()
should next docs in resource controllers. e.g:
route::resource('phase', 'phasecontroller');
which generate route urls like:
/tournament/{tourid}/phase/{phaseid}/bets /tournament/{tourid}/phase/{phaseid}/bets/{resource_id} /tournament/{tourid}/phase/{phaseid}/bets/{resource_id}/edit /tournament/{tourid}/phase/{phaseid}/bets/create
you see instead of having 1 parameter resource id, routes have 3 parameters. confuses laravel on 1 should utilize resource id.
since defining routes straight pointing controller actions, should using:
route::get('tournament/{tourid}/phase/{phaseid}/bets', 'phasecontroller@getphasebets'); route::get('tournament/{tourid}/phase/{phaseid}', 'phasecontroller@getphaseinfo');
if you'd still utilize resource controllers you'll need alter code this.
route::resource('phase', 'phasecontroller'); route::resource('bet', 'betcontroller');
and in controller files:
phasecontroller.php:
class phasecontroller extends basecontroller { public function show($id) { // original phasecontroller@getphaseinfo() here } }
betcontroller.php:
class betcontroller extends basecontroller { public function show($id) { // original phasecontroller@getphasebets() here } }
and reference urls this:
/phase/your_phase_id /bet/your_bet_id
obviously might not totally suit requirements. if explain little bit of relationships between tournaments, phases, bets, , you're trying achieve, maybe can suggest improve way.
php laravel laravel-4 laravel-routing
No comments:
Post a Comment