首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当查询- Laravel中使用join时,无法访问相关模型

当查询- Laravel中使用join时,无法访问相关模型
EN

Stack Overflow用户
提问于 2015-04-15 03:40:21
回答 1查看 47关注 0票数 1

我试图通过状态过滤我的代理模型。status列位于一个单独的模型上,即用户。所以在我的存储库里,我就是这样做的:

代码语言:javascript
复制
public function blocked($howMany = 10)
{
    return $this->model->join('users', 'users.userable_id', '=', 'agents.id')
            ->where(function($query)
            {
                $query->where('users.status', config('user.status.blocked'));
            })
            ->paginate($howMany);
}

其中$this-> model 的值是在构造函数中注入的代理模型实例。但是,下面的代码在我的控制器的循环中工作:

代码语言:javascript
复制
public function blocked()
{
    $agents = $this->agents->blocked();

    foreach ($agents as $agent)
    {
        dd($agent->user);
    }

    return view('agents.admin', compact('agents'));
}

用户的值为空。做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-04-15 04:11:38

通常你们的关系应该如下:

代码语言:javascript
复制
public function blocked($howMany = 10)
{
    return $this->hasMany('users', 'userable_id', 'id')
                ->where('status','=',config('user.status.blocked'))
                ->paginate($howMany);
}

来源:http://laravel.com/docs/4.2/eloquent#one-to-many

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29641204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档