存在Laravel check属性
如何更合理地检查现有属性存在Laravel check属性,laravel,properties,exists,Laravel,Properties,Exists,如何更合理地检查现有属性$this->team->playerasignment->player?现在我这样检查: if ($this->team) if (($this->team->playerAssignment)) if (($this->team->playerAssignment->player)) 尝试ISSETPHP函数 isset-确定变量是否已设置且不为空 最好的办法是 if ( isset($this->
$this->team->playerasignment->player
?现在我这样检查:
if ($this->team)
if (($this->team->playerAssignment))
if (($this->team->playerAssignment->player))
尝试ISSETPHP函数 isset-确定变量是否已设置且不为空
最好的办法是
if (
isset($this->team)
&& isset($this->team->playerAssignment)
&& isset($this->team->playerAssignment->player)
){
// your code here...
}
因为如果第一个是tofalse
,PHP将停止,如果第一个对象存在,它将继续第二个,第三个条件。。。
为什么不只使用
&&$this->team->playerasignment->player
?!因为如果玩家的值为0
,它将被理解为false
,但变量存在 以下几点对我来说总是最合适的:
if(isset(Auth::user()->client->id)){
$clientId = Auth::user()->client->id;
}
else{
dump('Nothing there...');
}
您可以通过空合并运算符轻松地进行检查
if ($this->team->playerAssignment->player ?? null)
如果($this->team&&$this->team->playerasignment&&$this->team->playerasignment->player),那么
呢!!我想是一样的。如果步骤数超过3,该怎么办?如果步骤数超过3,您可以使用其他&&
进行检查!你试过如果(isset($this->team->playerasignment->player))吗?我在laravel Blade中试过。它成功了。但在控制器设置中($this->team->playerasignment->player)总是返回false(需要详细信息或清晰性)
if ($this->team->playerAssignment->player ?? null)