0

places、 、の3 つのテーブルがplace_userありusersます。メソッドを使ってテーブルインプレイスモデルusersに従って一覧表示したい。しかし、ユーザーのすべての列を選択したくありません。私は以下でやろうとしました:place_userhas_many_and_belongs_to

Place::find(1)->users()->get(array('name','email'));

また

Place::find(1)->users()->first(array('name','email'));

しかし、それらは機能しませんでした。

これを処理する最善の方法は何ですか?

場所のモデル:

class Place extends Eloquent {
    public static $timestamps = true;

    public function users() {
        return $this->has_many_and_belongs_to('user');
    }
}

ユーザーモデル:

class User extends Eloquent {
    public static $timestamps = true;

    public function get_updated_at_readable() {
        return date('d.m.Y / H:i:s', strtotime($this->get_attribute('updated_at')));
    }

    public function get_created_at_readable() {
        return date('d.m.Y / H:i:s', strtotime($this->get_attribute('updated_at')));
    }

    public function places() {
        return $this->has_many_and_belongs_to('place','place_user');
    }
}

ありがとう。

4

2 に答える 2

2

それでも、get、最初のメソッドでは機能しませんが、select メソッドは機能しています。

Place::find(1)->users()->select(array('users.name', 'users.email'))->get();
于 2012-09-07T21:48:34.413 に答える
0

「名前」/「電子メール」の一方または両方の列が Place テーブルと User テーブルであいまいであるため、これがエラーの原因になっていると感じています。

あなたのソリューションのように、テーブルを指定する列を書くことができます:

Place::find(1)->users()->get(array('users.name','users.email'));
于 2012-12-07T14:21:33.863 に答える