simplePHPRouter: Not really a problem but a question

if i have a route like this Route::add('member/([0-9]*)', function($v) { include('member.php'); }, ['get','post']); i cant use var $v in member.php, how can i use it there?

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 35 (14 by maintainers)

Most upvoted comments

Hi,

ich würde das nicht in die Session packen. Denn die Unterseiten können theoretisch ja auch aufgerufen werden, wenn du vorher nicht schon auf der Übersichtsseite warst. Dann musst du dir ja wieder was bauen, dass wenn ein Wert in der Session fehlt, du wieder auf die Übersicht leitest oder sowas, damit das alles richtig initialisiert wird.

Warum registrierst du nicht für jede Stadt mehrere Routen? Das Schema (Name der Unterseiten) ist doch sicher immer gleich oder? Also, dass du in jedem Schleifenduchlauf die Hauptseite regisitrierst und dann gleich noch die Unterseiten:

while(...) {
Route::add('/'.strtolower($newcityname).'/edit', function() {
...
    });
Route::add('/'.strtolower($newcityname).'/details', function() {
...
    });
Route::add('/'.strtolower($newcityname).'/do-something', function() {
...
    });
}

Alternativ (Was ich empfehlen würde, weil es bestimmt viele Städte gibt) klannst du auch “Actions” nutzen. Also einen zweiten Parameter, der den Typ der Unterseite steuert:

Route::add('/([a-z0-9-_]*)/([a-z0-9-_]*)')', function($city, $action) {
   
// Select this city from db

// Switch the action
switch ($action) {
    case 'edit':
        // edit this city
        break;
    case 'details':
        // Show city details
        break;
    case 'do-something':
        // Mach irgendwas
        break;
}

  }, ['get']);