2017-02-27 5 views
0

テーブルadvice_protocolsquestionsという2種類のモデル(Laravelアプリケーション)があります。AdviceProtocolQuestionがあります。アドバイスプロトコル名、アドバイスプロトコルカテゴリと質問名前:私は私のクエリから次variabelsを取得したいと思いLaravel Eloquent Joinクエリはすべての変数にアクセスできません

public function userGoal() { 
     return $this->hasOne('App\Question', 'id', 'user_goal_id'); 
    } 

:モデルはで一緒にリンクされています。 2つのテーブルは、idsのセットでリンクされています。

public function data(){ 
     $advicePreparationsQuery = AdviceProtocol::select(['advice_protocols.name', 'advice_protocols.category', 'questions.id']) 
     ->join('questions', 'advice_protocols.user_goal_id', '=', 'questions.id') 
     ->get(); 

questions.idを取得することができますが、私はquestions.nameに変数を変更する場合:私は今持っているクエリがある何も取得されません。私の出力にはエラーはありませんが、値は返されません。誰かが私に助けてquestions.nameの価値を得ることができますか?

+0

あなたは 'fillables'配列を埋めたのにアクセスしようとしているとき、これはどの列を知っているので、それらのいずれかにエイリアスを与える必要がありますか?あなたのモデルを私たちに見せてもらえますか? –

答えて

1

nameはあなたのクエリであいまいですadvice_protocols.nameも選択してください。あなたはそれはあなたが$advicePreparationsQuery->name

$advicePreparationsQuery = AdviceProtocol::select(['advice_protocols.name', 'advice_protocols.category', 'questions.name AS question_name']) 
    ->join('questions', 'advice_protocols.user_goal_id', '=', 'questions.id') 
    ->get(); 
+1

ありがとうございます!今私が間違っていることも理解しています。あなたは素晴らしいです! –

0

試してみてください。

$advicePreparationsQuery = AdviceProtocol::select(['advice_protocols.user_goal_id', 'advice_protocols.name', 'advice_protocols.category', 'questions.id', 'questions.name']) 
     ->join('questions', 'advice_protocols.user_goal_id', '=', 'questions.id') 
     ->get(); 
+0

これは私にidを二度与えます.. –

+0

私の更新された答えを試してください – Paras

0

私は問題はあなたがquestions.nameを選択していないということだと思う...

試してみてください。なぜなら、あなた

$advicePreparationsQuery = AdviceProtocol::select([ 
    'advice_protocols.name', 'advice_protocols.category', 'questions.name' 
    ]) 
    ->join('questions', 'advice_protocols.user_goal_id', '=', 'questions.id') 
    ->get(); 
+0

私はこの値を返そうとすると私の質問を読んでください.. –