0

この質問に適切なタイトルを付ける方法さえわかりません。

ここに質問があります。属性に他のテーブルの行の ID である値が含まれているモデルがあります。

例:

Person['type'] = 108

別のテーブルでは、ID「108」の値は「フルタイム」に等しくなります。

現在、私のモデルは次の値を返します。

Person['type'] = 108

代わりに、次のように、「108」に関連付けられた値でモデルが返されるようにします。

Person['type'] = "Full Time"

関連テーブルでは、列名は「id」と「optionValue」です。

Laravel 4でこれを行うにはどうすればよいですか?

4

1 に答える 1

0

これらのテーブル間に基本的な関係があるようです。だからあなたはただしなければならない

PersonType モデルを定義します。

class PersonType extends Eloquent {

}

Person モデルを定義し、それに関係を追加します。

class Person extends Eloquent {

    public function type()
    {
        return $this->belongsTo('PersonType');
    }

}

編集

テーブルが Laravel 命名システム (person_type_id) に従っていない場合は、

class Person extends Eloquent {

    public function type()
    {
        return $this->belongsTo('PersonType', 'type');
    }

}

/編集

これで人を見つけることができます:

$person = Person::find(1);

そして、このようにタイプを印刷します:

echo $person->type->name;

「フルタイム」と表示されます。

person_types テーブルには、タイプ名を格納する「名前」列があると想定しています。

于 2013-09-03T00:02:12.053 に答える