2013-06-15 5 views
2

내 데이터를 얻는 방법을 배우는 데 어려움을 겪고있는 누군가가 나를 도와 줄 수 있기를 바랍니다. 내가Laravel 4 - 데이터베이스 결과를 뷰로 가져 오기

public function getPrivateMessages() 
{ 

    $userId = Auth::user()->id; 

    $messages = DB::table('pm_conversations') 
        ->where(function($query) use ($userId) { 
         $query->where('user_one', $userId) 
          ->where('user_one_archived', 0); 
        }) 
        ->orWhere(function($query) use ($userId) { 
         $query->where('user_two', $userId) 
          ->where('user_two_archived', 0) 
        }) 
        ->get(); 

} 

어떻게 내가 내보기에 그 다음, 내 컨트롤러에 내 모델에서 다음과 같은 기능을 전달할 것 한

?

약간 손실되었습니다.

class HomeController extends Controller 
{ 
    public function index() 
    { 
     $conversation = Conversation::find(1); 

     return View::make('index')->with('privateMessages', $conversation->getPrivateMessages()); 
    } 
} 
:

public function getPrivateMessages() 
{ 

... 

    return $messages; 

} 

은보기에 전달 컨트롤러에 사용 :이 대화 모델이라고 가정

감사

답변

6

, 당신은 쿼리 해당 메시지를 반환해야

보기에서 무엇을해야하는지 보여줍니다.

<html><body> 
    @foreach($privateMessages as $privateMessage) 
     {{$privateMessage->text}} 
    @endforeach 
</body></html> 
컨트롤러에서
+0

안녕하세요 Antonio ... 실제로 내 대화 모델에 – BigJobbies

+0

사실 전혀 다르지 않지만 전체 아이디어를 얻길 바랍니다.하지만 편집 해 드리겠습니다. 어쨌든, 대화로 이동하십시오. –

+0

아, 그렇습니다. 지금보십시오 ... find (1)는 오직 하나의 결과 만 리턴한다는 것을 의미합니까? – BigJobbies

2

, 당신은 당신의 작업 중 하나에이 부를 것이다 : MyModel이 모델의 실제 이름으로 대체해야한다는

$pms = MyModel->getPrivateMessages(); 
return View::make('layout') 
    ->with('pms', $pms); 

참고. ->with('pms',$pms) 비트는 변수 $ pms의 내용을 '레이아웃'보기로 전달하고 해당보기에서 'pms'라는 변수에 할당합니다. 뷰의 이름을 사용자 정의하여 원하는 뷰에 맞게 자유롭게 지정하고 다른 변수 이름을 선택하는 것이 좋습니다.

그런 다음보기에서이 같이 사용할 것이다 :

@foreach($pms as $pm) 
    <p>From: {{ $pm->user_one}}</p> 
    <p>{{ $pm->message }}</p> 
@endforeach 

을 여기에, 우리는 몇 가지 필드 (user_onemessage을 비공개 메시지의 각에 걸쳐 반복하여 출력하고, 당신이 원하는 것 데이터베이스에있는 열의 이름을 사용하십시오. 더 많은 정보를 들어

해당 문서의 다음 섹션을 참조하십시오

1

을보기 여기에 우리가라는 테이블에 액세스하는

<?php $var=DB::table('tablename')->get(); ?> 
@foreach($var as $variable) 
    {{ $variable->tablefield }} 
@endforeach 

'TABLENAME 내부 '(DB로 abbrievated) 우리의 데이터베이스에서 다음 AC get 메서드를 통해 테이블의 모든 열을 종료합니다. 그런 다음 임의의 변수에 저장합니다 (var라고 말하면 쉽게 반복 할 수 있습니다). 그리고 나서 위의 경우처럼 열 데이터를 인쇄하기 위해 반복하고 있습니다.

+1

코드를 조금 설명해야한다. –

+0

보기로 이동하여 tablename을 실제 테이블 이름으로 바꿉니다. – Pranjal

+0

여기서 우리는 데이터베이스에서 'tablename'이라는 테이블 (DB로 abbrievated)에 액세스하고 get 메소드를 통해 테이블의 모든 열에 액세스합니다. 그런 다음 임의의 변수에 저장합니다 (var라고 말하면 쉽게 반복 할 수 있습니다). 그런 다음 위의 경우처럼 열 데이터를 인쇄하기 위해 반복하고 있습니다 _ – Pranjal

관련 문제