最佳方法是什么,例如:
我有一个有很多人关系的城市。
如果由于任何原因我需要删除一个城市(使用软删除),那么有些人可能会丢失city_id参考。这使得Laravel显示错误消息"试图获取非对象的属性"。
我需要失去城市参考的人可以毫无错误地显示。
当我写一些像
这样的东西echo isset($person->city) ? $person->city->name : '';
它有效,但对我来说看起来有点难看。
当我写的时候
echo $person->city->name;
我得到了一个"试图获得非对象的属性"消息,因为该城市已被删除。
Laravel如何处理这个问题?
答案 0 :(得分:1)
要获取所有模型和软删除模型,请将以下内容添加到Person模型中城市的关系方法中;
public function cities(){
return $this->belongsTo('Cities\Model\Path')->withTrashed();
}
答案 1 :(得分:0)
这是很好的@MattBurrow。正是我需要的。在我的情况下,我只是将hasMany更改为belongsTo。
模型/ Person.php
class Person extends \Eloquent {
public function city(){
return $this->belongsTo('City')->withTrashed();
}
}