如何正确使用slim route condition?

How to user slim route condition correctly?

我用的是php Slim路由,如果参数username等于account怎么直接跳到第二个?

1

$app->get('/:username/', function($username) use () {
  echo 'user';
})->conditions(array('username' => '^(?!account)'));

2

$app->get('/account', function() use () {
  echo 'account';
});

我不确定您是否需要为此使用条件。您可以更改文件的顺序来实现相同的目的。因此,首先声明 'account' 路由,然后在其下方使用变量声明您的路由。

$app->get('/account', function() use () {
  echo 'account';
});

$app->get('/:username', function($username) use () {
  echo 'user';
})

如果无法更改路线的顺序,您可以使用如下方式:

$app->get('/:username', function($username) use ($app) {
  if($username === 'account') {
    $app->redirect('/account');
  }
  echo 'user';
});

$app->get('/account', function() use () {
  echo 'account';
});