Laravel雄辩地获取当前查询的模型属性

Laravel雄辩地获取当前查询的模型属性,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我试图在joindraw表中为fortune_代码执行where子句,并与product表中的lucky_fortune_代码进行比较。我如何访问和进行检查 Product::where('status', StatusConstant::PT_ENDED_PUBLISHED) ->where('lucky_fortune_code', '<>', '') ->with(['joindraw' => function ($query){

我试图在joindraw表中为fortune_代码执行where子句,并与product表中的lucky_fortune_代码进行比较。我如何访问和进行检查

Product::where('status', StatusConstant::PT_ENDED_PUBLISHED)
       ->where('lucky_fortune_code', '<>', '')
       ->with(['joindraw' => function ($query){
              $query->where('fortune_code', $this->lucky_fortune_code)
                    ->with('user');}])->desc()->get();
jointraw.php

class Joindraw extends Model
{
    public function product(){
        return $this->belongsTo('App\Models\Product', 'product_id');
    }

您可以做的是加入:

Product::where('status', StatusConstant::PT_ENDED_PUBLISHED)
   ->where('lucky_fortune_code', '!=', '')
   ->join('joindraws', 'joindraws.fortune_code', '=', 'products.lucky_fortune_code')->get();
顺便说一下,您还可以在
belongsTo()
关系中省略第二个
'product\u id'
参数,因为此列名已按惯例使用

此外,查询生成器上没有desc()方法。改用订购人('lucky\u fortune\u code','desc')


然而,无论何时你必须在Laravel中编写连接,你都应该考虑你的关系结构,因为可能有什么地方不对劲

你从哪里得到这个“$this->lucky\u fortune\u code”?@GauravGupta我无法得到它。被认为能够像在模型中一样使用product.lucky\u fortune\u code或lucky\u fortune\u code尝试$query->where('fortune\u code','lucky\u fortune\u code')和$query->where('fortune\u code','product.lucky\u fortune\u code'))不返回任何内容显示您的模型和模型之间的关系我希望访问表产品本身中的lucky_fortune_代码。我没有预定义变量。如何将joindraws表与user表联接?感谢您的提醒!为了便于维护,我在模型文件中编写了范围。系统需要根据情况更改订单。我明白了!简单地->使用('user')即可。谢谢
Product::where('status', StatusConstant::PT_ENDED_PUBLISHED)
   ->where('lucky_fortune_code', '!=', '')
   ->join('joindraws', 'joindraws.fortune_code', '=', 'products.lucky_fortune_code')->get();