0
  • 控制器
    public function index()
    {
        $lists = Region::with('admin')->paginate(15);

        return view('admin.region.index', ['lists' => $lists]);
    }
  • 模型
    public function admin ()
    {
        return $this->hasOne('App\Models\Admin','id','creator');
    }
  • 模板
<td class="text-yellow">{{ $list->admin->name }}</td>
<td class="text-yellow">{{ $list->admin?$list->admin->name:'不存在' }}</td>
  • 报错信息
  • 报错原因,region 中的 creatoradmin 中找不到关联的数据,返回 null
  • 模型中如何操作,让空数据不进行关联查询,只把完整的关联数据显示出来

查看全部 5 个回答

0

通过判断$list->admin是否为空,应该是可以处理掉的

推荐答案

2

已采纳

可以的. 如下:

public function admin ()
{
    return $this->hasOne('App\Models\Admin','id','creator')->withDefault();
}

withDefault() 参数为布尔, 数组, 函数.

使用withDefault()可以保证admin这个关联对象不为null, 是一个对象.