让我们说,我有
$app->get('/hello/:name', function($name){
echo 'Hello' . $name;
});
是否可以为$name
设置默认值,如果我只是转到
http://myurl.com/hello
*没有第二段,它将输出
Hello default
如果是,该怎么做? 如何在Slim中为路由参数指定默认值?
我知道有Optional Route Parameter,但我不确定是否使用它,因为它仍处于试验阶段。
感谢。
答案 0 :(得分:3)
试试这个,我已经测试过了。我工作得很好。
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello(/:name)', function ($name = 'default') {
echo "Hello, $name";
});
$app->run();
您可以这样访问:
http://slim.test.com/hello
http://slim.test.com/hello/srain
不能这样访问:
http://slim.test.com/hello/
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello(/)(/:name)', function ($name = 'default') {
echo "Hello, $name";
});
$app->run();
答案 1 :(得分:1)
您只需使用default parameters
。
$app->get('/hello/:name', function($name="default"){
echo 'Hello' . $name;
});
答案 2 :(得分:0)
$app->get('/hello/:name', function($name){
if (empty($name)){
$name='default';
}
echo 'Hello' . $name;
});
答案 3 :(得分:0)
我遇到了类似的问题,我必须在请求中处理可选参数。试试这个我自己测试过。
$app->get('/hello(/:name)',function($name="default"){
echo 'Hello' . $name;
});