2013-10-12 2 views
0

http://culttt.com/2013/05/13/setting-up-your-first-laravel-4-model/에 대한 자습서를 따랐는데 제대로 작동하지 않습니다. 여기에 내가 시도 내용은 다음과 같습니다laravel 4 비 객체의 posts() 함수 호출

포스트 모델 :

class Post extends Eloquent { 

    protected $fillable = array('body'); 

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

경로 :

Route::get('/posts',function() 
{ 
    // Create a new Post 
    $post = new Post(array('body' => 'Yada yada yada')); 
    // Grab User 1 
    $user = User::find(1); 
    // Save the Post 
    $user->posts()->save($post); 
}); 

사용자 모델 : 포스트 모델

/** 
* Post relationship 
*/ 
public function posts() 
{ 
    return $this->hasMany('Post'); 
} 

, 단순히 몸의 열을 생성하고 user_id 칼럼 하지만 브라우저를 열면 오류가 표시됩니다. "객체가 아닌 객체에서 posts 함수()를 호출하면"

아무 문제가 있는지 알고 있습니까?

+0

합니까 (1) 데이터베이스에 존재 = ID와 사용자? –

+0

@Janily 당신이 분류 했어? '$ user = User :: find (1); '다음에'dd ($ user);'를 실행하고 출력을 게시하면 사용자 객체를보고 무슨 일이 일어나는지를 알 수 있습니다. 또한 데이터베이스를 살펴 보았습니다. 사용자가 1의 ID로 존재합니까? 사용자를 몇 번 재 작성한 경우 ID가 증가했을 수 있습니다. 대신'User :: first();를 시도해 보면 작동하는지 알 수 있습니다. – WebweaverD

답변

2

데이터베이스에서 검색하기 전에 사용자를 만들어야합니다.

시도 :

// Create a User 
$user = new User; 
$user->username = 'username'; 
$user->email = '[email protected]'; 
$user->password = 'password'; 
$user->password_confirmation = 'password'; 
$user->save(); 

// Create a new Post 
$post = new Post(array('body' => 'Yada yada yada')); 
// Grab User 1 
$user = User::find(1); 
// Save the Post 
$user->posts()->save($post); 
+0

감사합니다. 이 튜토리얼은 매우 멋지다! – Janily

관련 문제