我必须处理一个 Laravel 7 应用程序,该应用程序的数据库设计不理想,导致标题中提到的错误。
数据库看起来像这样:
mains
- id
- sub_type
subs_a
- id
- main_id
subs_b
- id
- main_id
然后我有一个Main带有方法的类sub:
public function sub()
{
switch($this->sub_type) {
case 'a':
return $this->hasOne('SubTypeA');
break;
case 'b':
return $this->hasOne('SubTypeB');
break;
default:
return null;
}
}
此代码适用于 99% 的情况,但 Laravel 有时会加载 的空实例Main,然后尝试加载关系。这是行不通的,因为 method 的默认值sub是null.
重组数据库已列入待办事项列表,但目前没有任何帮助。
我需要什么选项来阻止 Laravel 尝试sub在空对象上加载关系?
繁星coding
12345678_0001
慕沐林林