duan3019 2016-11-12 15:52 采纳率: 100%
浏览 26

too long

I have a big query which has a nested query. I want to know how to write it so that it's not cluttered. What I tried was creating query objects

//get the latest joined employee per department
$q1   = Employee::where('job', 'assistant')
                   ->groupBy('dept_id')
                   ->select(DB::raw('MAX(empid) as empid'));
//fetch his course ID
$q2    = Employee::whereIn('empid', function($query){
                                           $query->$q1;
                                       })
                   ->where('university', 'LIKE', '%UCLA%')
                   ->select('course_id')
                   ->distinct()
                   ->get()->lists('course_id'); 

I am getting this error

[Symfony\Component\Debug\Exception\FatalThrowableError]  
  Cannot access empty property

How should I do it?

  • 写回答

2条回答 默认 最新

  • dongquanyu5816 2016-11-12 15:57
    关注

    You need to inherit your variable from your parent scope in your anonymous function. It's possible with use, like so:

    function($query) use ($q1) {
        // use $q1 here
    }
    

    Read about use (Example #3 Inheriting variables from the parent scope) here: http://www.php.net/manual/en/functions.anonymous.php

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么