2016-08-08 2 views
4

질문을 너무 구체적으로 말하면서 Laravel을 말하면 나에게 큰 소리를 낼 수 있습니다.하지만 2 가지 데이터 세트를 함께 묶는 가장 효율적인 방법은 무엇입니까? Laravel 내의 도구.laravel에서 2 개의 데이터 세트를 연결하는 가장 효율적인 방법

웅변적인 관계와 쿼리 빌더와의 조인 사이를 선택할 때 사용해야하는 특정 사고 방식이 있습니까? 또는 내가 고려해야하는 더 작거나 큰 데이터 집합에서 쿼리 작성기를 사용하면 어떤 단점이 있습니까?

사용자 테이블에서 하나 또는 두 개의 필드 만 필요로하는 티켓 시스템을 구축 중이며이 시점에서 관계를 고려하는 것이 맨 위에 표시되지만 시스템 요구 사항이 증가하면 지저분한 코드. 이것이 관계가 해결할 수있는 상황입니까?

알고 있어야하는 웅변적인 관계를 사용할 때 커플 링 유형 동작이 발생합니까?

나는 내가 어떻게 질문을하고 있는지 분명히 알지 못한다면 나는 그것을 시도하고 다시 언급 할 것이다.

답변

1

Eloquent 모델의 몇 가지 간단한 관계 방법을 설정하면 Eloquent의 힘 (따라서 용이함과 단순함)이 최대한 발휘된다는 것을 알게 될 것입니다. 예를 들어 사용자 정의 조인 코드를 작성하거나 다음과 같은 구조를 사용하십시오.

foreach($user->tickets as $ticket) { ... etc ... } 

Laravel에 새로 온 것 같네요. 나는 매우 연관성이있는 페이지를 Laravel manual에서 읽는 것이 좋습니다. 많은 훌륭한 예가 있습니다. 또한 관계에 대한 Laracast 비디오 자습서가 here입니다. 나는이 사이트에 아무런 관계가 없다.

티켓 클래스 :

<?php 
class Ticket extends Model { 
    public function user() { 
     return $this->belongsTo('User'); 
    } 
} 

사용자 클래스 :

<?php 
class User extends Model { 
    public function tickets() { 
     return $this->hasMany('Ticket'); 
    } 
} 

를 너무 오래 당신이 그렇게 같은 테이블 설정을 가지고는 :

tickets (table) 
- id 
- user_id 

users (table) 
- id 

이 예는 모델은에있는 가정 전역 네임 스페이스. 나는 완전히 당신의 점을 볼 나는 상당히 큰 extent.I의 웅변에 대한 정보와 그 용도를 읽을 것을 추가 서둘러

$ticket->user->first_name 
$ticket->user->last_name 
+0

그리고 내가 그 항상 생각 : 그런 다음과 같이 표에서 사용자 데이터를 잡아 수 있습니다 결국 우위가 있음을 알았습니다. 그러나 물론 거기에도 단점도 있습니다. 필자의 경우에 사용 된 예제는이 시스템의 요구 사항이 말 그대로 필자의 사용자 테이블에서 2 개의 필드가되어 티켓에 대한 모든 요청에 ​​필요하다는 것입니다. 나는 각각에 대한 필요가 스스로를 나눌 점을 측정하려고 노력하고 있다고 생각한다. 이러한 관계를 사용할 때 0 가지 단점이 있다면 절대적으로 나는 그것을 exsclusively 사용합니다. –

+0

Laravel에 내장 된 관계를 사용하는 데는 단점이 없습니다. 그들이 너무 많은 어려움처럼 보이면 나는 당신에게 익숙하지 않기 때문에 당신에게 그것을 확신합니다. 사용자와 티켓 간의 이러한 관계는 매우 단순합니다. - 사용자 hasMany 티켓 - 티켓 belongsTo 하나 사용자 –

+0

답변에 예제 구현을 추가했습니다. –

관련 문제