Laravel检查属性存在

时间:2017-09-19 13:21:33

标签: laravel properties exists

如何以更合理的方式检查现有属性if ($this->team) if (($this->team->playerAssignment)) if (($this->team->playerAssignment->player)) ?现在我检查一下:

defaultConfig {
    ..
    resConfigs "en"
}

4 个答案:

答案 0 :(得分:4)

尝试使用isset php功能。

isset - 确定变量是否已设置且不是NULL

if(isset($this->team->playerAssignment->player)){

}

答案 1 :(得分:1)

以下内容始终对我最有效:

if(isset(Auth::user()->client->id)){
        $clientId = Auth::user()->client->id;
    }
    else{
        dump('Nothing there...');
    }

答案 2 :(得分:1)

您可以通过空合并运算符轻松检查

if ($this->team->playerAssignment->player ?? null)

答案 3 :(得分:0)

最好的方法是

if (
    isset($this->team)
    && isset($this->team->playerAssignment)
    && isset($this->team->playerAssignment->player)
){
    // your code here...
}

因为如果第一个对象是false,PHP将停止,如果第一个对象存在,则继续第二个,第三个条件...... 为什么不只使用&& $this->team->playerAssignment->player?因为如果玩家的值为0,则会将其理解为false但存在变量!