微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用作关系船的 Laravel 访问器和修改器

如何解决用作关系船的 Laravel 访问器和修改器

我需要一种通过 child(hasMany) 关系对结果进行排序的方法。让我用代码解释我的问题。 我有 3 个模型,分别是建议库存报价

要约模型的relation

public function stock(){ return $this->belongsTo(Stock::class);}

库存模型的relation

public function offers(){return $this->hasMany(Offer::class)->orderBy('submitted','DESC')->orderBy('position','DESC');}

public function suggestion(){return $this->hasOne(Suggestion::class);}

建议模型关系

public function stock(){return $this->belongsTo(Stock::class);}

实际上我需要做的是按 offer.submitted

获得所有建议的顺序

我现在做了什么在下面,但它不起作用:(

public function getSortedSuggestions(){
    $suggestion = new Suggestion();

    $results     = $suggestion::with(
        [
            'stock' => function ($query) {
                return $query->with(
                    [
                        'links:id,stock_id,title,url','category:id,title','market:id,'offers' => function ($q) {
                            return $q->select(
                                'id','stock_id','position','price','percentage','type','submitted','second_date'
                            )->get()->sortBy(
                                function ($query) {
                                    return $query->submitted;
                                }
                            );
                        },]
                )->select(
                    'id','symbol','company_name','production','category_id','market_id','fiscal_year'
                )->get()->sortByDesc(
                    function ($query) {
                        return $query->id;
                    }
                );
            },]
    )->where('status',$request->position)->select([ 'id','status' ])->get()->sortBy(function($q){
        return $q->stock_id;
    });

    return $this->jsonSuccess('success',$results);
}

任何帮助将是我的荣幸, 感谢您的时间!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。