2017-02-08 7 views
1

나는이 두관계는 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); 
} 

당신은 개체를 만들하지 않습니다. like $ wf_model = 새로운 워크 플로우; 모델을 호출하여 쿼리를 만들 수 있습니다.

0

을 좀 도와 수 있습니다. 그것은 당신이 그것을 요구할 때 또는 관계라고 부를 때만 검색됩니다.

그래서 코드에서 find 메소드 다음에 관계 데이터에 액세스하려고하면 db에서 데이터를로드하고 지연로드라는 것을 사용자에게 제공합니다. 이처럼 :

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

} 

당신이 열망 부하에 데이터를하려는 경우, 당신은 웅변의 with 기능을 사용할 수 있습니다. 단 하나의 기록에는 아무런 차이가 없으므로 필요하지 않습니다.

읽어보기 Eloquent eager loading.