2016-07-01 2 views
1

올바르게 작업 한 경우 해결하려고합니다. 나는 부서 모델을 가지고있다. Department는 많은 DepartmentObjectives를 가질 수 있습니다. 나는 또한 반전을 설정했다. 그래서이 관계는 괜찮습니다.관계 및 쿼리 관련 모델

다음 사용자 모델이 있습니다. 사용자는 많은 사용자 목표를 가질 수 있습니다. 이것은 잘 설정되어 있습니다. 그러나 내 user_objectives 테이블에서, 그래서 사용자의 목적이 부서 목적에 연결되어

$table->integer('department_objectives_id')->unsigned()->default(0); 
$table->foreign('department_objectives_id')->references('id')->on('department_objectives')->onDelete('cascade'); 

목적 부서에 대한 링크가 있습니다. 내 모델 내에서 지정해야 할 사항입니까? 그렇다면 내 UserObjectives 모델의 모델은

class UserObjectives extends Model 
{ 
    use SoftDeletes; 

    protected $table = 'user_objectives'; 
    protected $guarded = []; 

    public function user() 
    { 
     return $this->belongsTo('App\User'); 
    } 

    public function departmentObjectives() 
    { 
     return $this->belongsTo('App\DepartmentObjectives'); 
    } 
} 

이어야합니다. 어떤 이유로이 작업을 조금 이상하게 보입니다. 어쨌든, 현재 사용자 목표를 만들 때 부서 목표가 선택되고 ID를 부서 목표에 저장합니다. 그래서 내 견해 내에서 나는 이런 것을 할 수있다.

{{dd($objective->department_objectives_id)}} 

그리고 그것이 관련된 부서 목적의 ID도 표시 할 것이다. 부서 목표의 이름을 어떻게 알 수 있습니까?

는 모든 adivce 당신이 이름 필드 이름을 명명 한 가정

{{ $objective->departmentObjectives->name }} 

를 호출 할 수 있습니다

+0

당신의 테이블 구조는 분명하지 않지만, 내가보기에 당신은 많은 관계가 필요하다고 생각합니다. ** user_objectives **가 피벗 테이블 인 경우 * UserObjectives * 모델이 필요하지 않습니다. Laravel은 자동으로 관계를 만듭니다. 많은 관계가 있는지 문서를 확인하고 싶을 수도 있습니다. https://laravel.com/docs/5.1/eloquent-relationships#many-to-many – TheFallen

+0

목표가 사용자와 부서간에 공유되어 있습니까? 귀하의 사례는 비디오 및 그림 (2 가지 모델)에 태그를 추가 할 수있는 태그 지정 시스템과 유사합니까? – geoandri

+0

태그 시스템과 같은 종류입니다. 부서는 부서가 달성하기를 원하는 목표를 설정할 수 있습니다. 사용자가 자신의 개인 목표를 만들면 부서 목표에 해당 목표를 연결해야합니다. –

답변

1

변경보기에이

{{dd($objective->department_objectives_id)}} 

감사합니다 감사합니다.

+0

$ objective-> departmentObjectives를 호출하면 deparmentObjectives() 관계에서 얻은 객체를 참조하게됩니다. –