2016-04-03 3 views
0

Ich kann nicht herausfinden, warum die Links, die ich mit der Laravel route() -Funktion erzeugen, nicht wie ich will.Laravel Route Ausgabe

Hier die Zeilen Code meiner routes.php ist

Route::get('/market/announcements/show/{period}/{date}', array('as' => 'market.announcements.index', 'uses' => '[email protected]')); 
Route::get('/market/announcements/history', array('as' => 'market.announcements.history', 'uses' => '[email protected]')); 
Route::resource('market/announcements', 'AnnouncementsController'); 

Hier ist, wie ich die Links generieren:

route('market.announcements.index', ['period' => $key, 'date' => $link]) 

Leider ist der erzeugte Link lautet:? Markt/Ankündigungen period = Jahr & date = 2016

Anstelle von: Markt/Ankündigungen/show/Jahr/2016

Antwort

0

Es ist, weil

Route::resource('market/announcements', 'AnnouncementsController'); 

überschreibt Route

Route::get('/market/announcements/show/{period}/{date}', array('as' => 'market.announcements.index', 'uses' => '[email protected]')); 

Wenn Sie php artisan route:list laufen würden Sie würden sehen

 
+-----------+-------------------------------------------+------------------------------+ 
| Method | URI          | Name       | 
+-----------+-------------------------------------------+------------------------------+ 
| POST  | market/announcements      | market.announcements.store | 
| GET|HEAD | market/announcements      | market.announcements.index | 
| GET|HEAD | market/announcements/create    | market.announcements.create | 
| GET|HEAD | market/announcements/history    | market.announcements.history | 
| GET|HEAD | market/announcements/show/{period}/{date} | market.announcements.index | 
| GET|HEAD | market/announcements/{announcements}  | market.announcements.show | 
| PUT|PATCH | market/announcements/{announcements}  | market.announcements.update | 
| DELETE | market/announcements/{announcements}  | market.announcements.destroy | 
| GET|HEAD | market/announcements/{announcements}/edit | market.announcements.edit | 

Siehe market.announcements.index zweimal aufgeführt? Router den letzten nehmen.

Nun, wenn Sie für einen Moment auf eine Ressource in der Routen-Datei auf Kommentar

// Route::resource('market/announcements', 'AnnouncementsController'); 

und würde es in tinker versuchen würden Sie sehen Ihre Route arbeitet jetzt als

 
$ php artisan tinker 
Psy Shell v0.7.2 (PHP 5.6.19 — cli) by Justin Hileman 
>>> route('market.announcements.index', ['period' => 'year', 'date' => 2016]); 
=> "http://localhost/market/announcements/show/year/2016" 
+0

aa Dank erwartet. Ich habe die Bestellung geändert und jetzt funktioniert es :) –