我正在尝试使用可选参数在Concrete5(php)中创建一个从Controller
扩展的类。我试图冲刷Concrete5和Symfony文档,但是答案不在那里,或者当我在php中使用oop的时候,我很傻。所以,我正在寻找一个小手来让我完成这个过程。混凝土5:Route :: register的可选参数
我的申请\引导的尾\ app.php
Route::register(
'/plotdata/{start}/{end}' //1 below
, 'Application\Controller\SinglePage\getplotdata::getData' //2
, NULL //3
, array() //4
, array('var1' <= NULL, 'var2' <= NULL, 'var3' <= NULL, 'var4' <= NULL) //5
//1 rtPath | path - start and end are required params /{var1}/{var2}/{var3}/{var4} are optional,
//2 callback
//3 rtHandle
//4 requirements = array() see e.g. line below
// array('start' => '[0-9]{4}(-[0-9]{2}){2} [ 0-2][0-9](:[0-5][0-9]){2}(.[0-9]{3})?'
//5 options | additionalAttributes
);
导致任何URI与参数超出end
产生误差。例如
plotdata/2015-02-01 00%3A00%3A00/2016-02-09 23%3A59%3A00/blah
产生404错误。如果我在末尾离开/blah
(尽管没有设置$var1=blah
),假设getplotdata.php
存在于相应的目录中,并且这些行在头部附近,它将加载。
namespace Application\Controller\SinglePage;
class getplotdata extends Controller {
如果线“1”(在第一块)被修改以读取
'/plotdata/{start}/{end}/{var1}/{var2}/{var3}/{var4}'
离开其它线(包括5)是相同的,我需要参数的每个。例如既不plotdata/2015-02-01 00%3A00%3A00/2016-02-09 23%3A59%3A00/blah
也不plotdata/2015-02-01 00%3A00%3A00/2016-02-09 23%3A59%3A00
工作,
但plotdata/2015-02-01 00%3A00%3A00/2016-02-09 23%3A59%3A00/1/2/3/4
确实
这样,我怎么指定可选参数(有或没有默认值[由Symfony的暴露$默认?]),还是有在Concrete5中产生“重载”类定义的方法?我是否做类似
$bob = Route::register(
'/plotdata/{start}/{end}'
, 'Application\Controller\SinglePage\getplotdata::getData'
); //end $bob
$bob->addDefaults(array('var1' <= NULL, 'var2' <= NULL, 'var3' <= NULL, 'var4' <= NULL));
[c5.org后(https://开头WWW .concrete5.org/community/forums/customizing_c5/concrete5-optional-parameters-for-routeregister /) – mpag