0

これが私が設定したものです。2つのテーブルがあります。usersおよびtodos。すべてのユーザーは複数の「todo」を持つことができます。

テーブルは次のようになります。

ユーザー: ここに画像の説明を入力してください

Todos: ここに画像の説明を入力してください

そしてモデル:

class User extends Eloquent 
{
    public function todo() {
        $this->has_many('todo');
    }
}

と...

class Todo extends Eloquent 
{
    public function user() {
        $this->belongs_to('user');
    }
}

データベース内のユーザーに「todo」がすでに添付されていることに注意してください。だから、そうは言っても、私は次のことをすることができないはずです:

$user = User::find(1)->todo;

そのユーザーのToDoを取得するには?dd()-ingすると、現在Nullが発生しています。

array(1) {
  ["todo"]=>
  NULL
}

それで、何かアイデアはありますか?Todoのモデルから削除してみbelongs_to()ましたが、必要ないはずなのでしょうか?いずれにせよ、違いはありません。私は何かが足りないのですか?

4

1 に答える 1

1

リレーションオブジェクトを返す必要があります。例:

class User extends Eloquent 
{
    public function todos() {
        return $this->has_many('Todo');
    }
}

また、配列を返すリレーション(has_many、has_many_and_belongs_toなど)は通常複数形であるため、「todos」と「todo」の違いにも注意してください。

于 2012-12-08T16:50:41.053 に答える