2014-04-30 2 views
0

URL에 전달 된 ID를 가져오고 싶지만 문제가있는 것 같습니다.변수를 URL에 전달했습니다. Laravel 4

이 내 routes.php

Route::get('/poste/{idp}',array('before' => 'members_auth',function($id){ 
//dd($id); 

$post =Posts::where('idp','=',$id) -> get(); 

$titre=$post->titre; 

$desc=$post->description; 

return View::make('showPost',array('title'=>$titre,'description'=>$desc)); 
})); 

입니다 그리고 이것은 내보기

<a href="/poste/{{$userpost->idp}}"> 

오류가 Undefined property: Illuminate\Database\Eloquent\Collection::$titre

답변

2

당신이 설득력 ORM으로 시작할 때 그것은 매우 일반적인 문제입니다했다입니다. 기본적으로 get() 메서드는 하나만있는 경우에도 항상 Collection 개체를 반환합니다. Collection 객체에는 titre 속성이 없습니다. idp이 게시 모델의 기본 키인 경우 find() 또는 findOrFail() 메서드를 대신 사용해야합니다. Laravel 문서 상태로

$post = Posts::find($id); 

:

참고 : 웅변은 각 테이블에 기본 키 열라는 이름의 ID를 가지고 있다고 가정합니다. 이 규칙을 재정의하기 위해 primaryKey 속성을 정의 할 수 있습니다. 마찬가지로 모델 을 사용할 때 사용해야하는 데이터베이스 연결의 이름을 으로 대체하는 연결 속성을 정의 할 수 있습니다.

기본 키를 자유롭게 무시할 수 있습니다.

+0

예 idp는 기본 키이지만 시도한 때 $ post = Posts :: find ($ id); 보기 :: make ('showPost') -> with ('idpost', $ post-> idp); 열을 찾을 수 없음 : 1054 'where 절'에서 알 수없는 'id'열 (SQL : select * from'posts' from 'id' = 25 – user3475960