繁体   English   中英

如何从Laravel Eloquent中的HasMany关系中的联接表中获取特定列

[英]How to get a specific column from the joined table in HasMany relationship in Laravel Eloquent

我的模特看起来像这样

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class appraisaltask extends Model
{
    //
     protected $table = 'empappraisaltask';

    /*
     * An invoice can has many payments 
     *
     */
     public function ratings(){

        return $this->hasMany('App\appraisalrating','empappraisaltask_id')->select(array('comment', 'rating'));
    }
}

我正在像这样在我的函数中进行查询

 public function getUserbasictask(){

        $taskwithcomments = appraisaltask::select(array('id','taskname','description','status'))->with(  array('ratings' => function($query)
          {
             // the condition that will be apply on the with relation
              $query->where('emp_id','=',Auth::user()->empid);

          }))->where('type','=','basic')->get();

            return json_encode($taskwithcomments);
    }

但是我得到空Rating对象。 建议如何做

如果我从模型的评级函数中删除select() ,我将获得所有详细信息

任何帮助,将不胜感激

我遇到了您的问题,请更新您在评估任务模型中的评分功能

public function ratings()
{
    return $this->hasMany('App\appraisalrating','empappraisaltask_id')->select(array('emp_id','comment', 'rating'));
}

并更新查询

 public function getUserbasictask(){
    $taskwithcomments = appraisaltask::select(array('id','taskname','description','status'))
->with(['ratings' => function($query)
      {
         // the condition that will be apply on the with relation
          $query->where('emp_id','=',Auth::user()->empid);

      }])->where('type','=','basic')->get();

        return json_encode($taskwithcomments);
}

希望它能工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM