2016-12-16 1 views
0

laravel 5.2를 사용할 때 다음을 실행할 때 응답에 null 값이 반환됩니다.null 값 배열을 반환하는 열망하는로드와의 유사점

$id = Request::input('id'); 

    $question = Question::where('q_id','=',$id)->with(
     array('answers'=>function($query){ 
      $query->select('answer','aid'); 
     }) 
    ) 
    ->get(); 
    return $question; 

질문 모델 :

class Question extends Model 
{ 
protected $table="questions"; 
protected $primaryKey = 'q_id'; 

public function comments() 
{ 
    return $this->hasMany('App\Comments','qid','q_id'); 
} 

public function qtags() 
{ 
    return $this->hasMany('App\Question_tags','q_id','q_id'); 
} 

public function answers() 
{ 
    return $this->hasMany('App\Answers','qid','q_id'); 
} 

} 

Question_tags :

class Question_tags extends Model 
{ 
protected $table="question_tags"; 

public function tags() 
{ 
    return $this->belongsTo('App\Tags','tag_id','tagid'); 
} 
} 

데이터베이스 : 내가 이전에 열망로드를 사용하지만,이 이상한 오류를 가지고 적이없는

COMMENTS table 
-qid 
-comment 

Question table: 
-qid 
-title 
-body 

Answers table: 
-aid 
-qid 
-answer 

. 나는 문제가 관계에있는 stackoverflow에서 비슷한 질문을 발견했다. 나는 그 관계를 엉망으로 만들었나요?

+0

키를 게으르게 지정하지 않으면 문제가 발생하지 않습니다. – Kyslik

+0

은 @Kyslik – uttejh

답변

1

쿼리는 메모를로드하지 않습니다. 당신은 with()이 관계를 추가해야합니다

$question = Question::where('q_id','=',$id)->with([ 
    'comments', 
    'answers' => function($q) { 
     $q->select('answer','aid'); 
    }]) 
    ->get(); 

업데이트 의견에

당신이 commentsanswers에 문제가 있지만하지 않을 말했다. 이 경우 키를 select()에 추가하려고 시도하십시오.

$query->select('answer','aid', 'qid'); 
+0

을 기억합니다. answers.modified는 null입니다. – uttejh

+0

@uttejh 업데이트 된 답변을 읽어주십시오. –

+0

OMG! 효과가 있었어. 왜? – uttejh