在命令选项的值用变量

时间:2019-01-31 20:16:29

标签: laravel

我想在命令中使用变量作为选项的默认值。我还希望签名中有一个相关变量,但是出现以下错误。

  

不允许使用表达式作为字段默认值

签名

protected $signature = "app:FixStepsStatistics {phone?*}{--dateFrom=$this->dateFrom}{--dateTo=}";

public function __construct()
{
    parent::__construct();
    $this->dateFrom = Carbon::now();
}

我可以在签名中使用变量吗?

1 个答案:

答案 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()