二级表的Laravel条件

时间:2015-02-17 09:30:12

标签: laravel eloquent

模式Position.php包含以下代码。

class Position extends \Eloquent {  


    public static function get_position_by_url($url) {

            return Position::where('url','=',$url)->where('status','=','0')->with('message')->get();
        }


        public function message() {
            return $this->hasMany('Message');
        }
    }

上面的代码工作正常,我需要的是按消息表中的条件获取数据,如下所示:

 class Position extends \Eloquent {        


        public static function get_position_by_url($url,$screenSize) {

                return Position::where('url','=',$url)->where('status','=','0')->with('message')->where('screensize','=',$screensize)->get();
            }


            public function message() {
                return $this->hasMany('Message');
            }
        }

但这两个条件都应用于位置表,我想将第二个条件应用于消息表。

1 个答案:

答案 0 :(得分:1)

您可以通过传递闭包来过滤渴望加载的模型:

return Position::where('url','=',$url)->where('status','=','0')->with(['message' => function($q) use ($screensize){
     $q->where('screensize','=',$screensize);
}])->get();

Eager Loading Constraints

下的documented here一样