2017-02-08 3 views
1

は、私はこれらの2関係は5.4

workflows.phpようなモデルのものを持って

<?php 

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 
use DB; 

class workflows extends Model 
{ 
    //getWorkflows 
    protected $table = 'workflows'; 

    function workFlowStates() 
    { 
     return $this->hasMany('App\Models\workflow_states','id','workflow_id'); 
    } 
} 

workflow_states.php

<?php 

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 
use DB; 
class workflow_states extends Model 
{ 
    // 
    protected $table = 'workflow_states'; 

    function workFlows() 
    { 
     return $this->belongsTo('App\Models\workflows','workflow_id','id'); 
    } 

} 

私がしよう私のコントローラでこれを行うには

私は関係を見ることができません。私はワークフローテーブルからのデータしか見ることができません。

いくつかのいずれかは関係からのデータは、デフォルトでロードされ熱心ではありませんので、これは、ここで

おかげ

答えて

1

これを試してみてください:レコードの編集中に

public function editworkflow($id) 
{ 
    echo workflows::with('workFlowStates')->find($id); 
} 

あなたは、オブジェクトを作ることはありません。 $ wf_model =新しいワークフローのように。モデルを呼び出すだけでクエリを作成できます。

0

を私を助けることができます。それはあなたがそれを求めるとき、または関係と呼ばれるときにのみ取り出されます。

したがって、findメソッドの後にリレーションデータにアクセスしようとすると、dbからデータがロードされ、遅延ロードと呼ばれるデータが渡されます。このように:

public function editworkflow($id) 
{ 
    $wf_model = new workflows; 
    dd($wf_model::find($id)->workFlowStates); 

} 

あなたが熱心な負荷にデータをしたい場合は、あなたが雄弁のwith機能を使用することができます。しかし、それは何の違いもありませんので、単一の記録のために必要ではありません。

この記事を読むEloquent eager loading