我想在命令中使用变量作为选项的默认值。我还希望签名中有一个相关变量,但是出现以下错误。
不允许使用表达式作为字段默认值
签名
protected $signature = "app:FixStepsStatistics {phone?*}{--dateFrom=$this->dateFrom}{--dateTo=}";
public function __construct()
{
parent::__construct();
$this->dateFrom = Carbon::now();
}
我可以在签名中使用变量吗?
答案 0 :(得分:0)
您必须使用常量值声明类变量,而不能使用其他变量来做到这一点。
http://php.net/manual/en/language.oop5.properties.php
这将失败:
router.get("/:id/view/:challengeid/:username", isLoggedIn, function(req, res){
Mentor.findById(req.params.id, function(err, mentor){
mentor.mentorChallenges.forEach(function(chall){
var k = 0;
for(var i = 0; i < chall.applicants.length; i ++){
if(chall.applicants[i] == req.params.username){
k = 1;
break;
}
}
if(k === 1){
Team.find({username: req.params.username}, function(err, team){
res.render("teamDetails", {team: team});
});
}
});
});
});
相反,您可以将默认值设置为空字符串,然后在class MyClass
{
protected $thing1 = 'hello';
protected $thing2 = $this->thing1.' world'; // invalid in PHP
}
方法中根据需要分配默认值。
handle()