Parent.php
class Parent extends Model
{
public function children() {
return $this->hasMany('App\Child');
}
}
并且我在控制器中使用了它:
$children = Parent::find($parent_id)->children;
,并且当$parent_id
存在时可以。但是当$ parent_id`不存在时。它返回此错误:
Trying to get property 'children' of non-object
如何防止此错误或返回false?
答案 0 :(得分:3)
解决方案很简单:
<?php
$children = null;
$parent = Parent::find($parent_id);
if ($parent) {
$children = $parent->children;
}
return $children; // or return false, or throw Exception - whatever you like
如果父级存在,则上面的代码将返回HasMany
关系,否则返回false。
如果您无论如何都需要一个集合,那么更好的方法是从另一个角度进行处理,例如:
<?php
$children = Children::where('parent_id', $parent_id)->find();
return $children;
答案 1 :(得分:1)
use Illuminate\Database\Eloquent\Collection;
$parent = Parent::find($parent_id)
$chilren = is_null($parent) ? Collection::make([]) : $parent->children;
这是第一个解决方案
您检查父级是否不为null,然后使用具有许多关联的关系或返回空的雄辩性集合
或者您可以通过父母身份获得孩子
Child::where('parent_id', $parent_id)->get()
答案 2 :(得分:1)
$childData='';
$parentdata = Appuser::find($parent_id);
if(isset($parentdata)){
$childData = $parentdata->order;
}
return $childData;