在Laravel 4中查找模型属性的值

时间:2013-09-02 23:45:39

标签: laravel laravel-4 eloquent

我甚至不知道如何正确地标题这个问题。

以下是问题: 我有一个模型,其属性包含的值是其他表中行的ID。

示例:

Person['type'] = 108

在另一个表中,ID'108'的值等于“Full Time”。

目前我的模型返回值:

Person['type'] = 108

相反,我希望我的模型返回时带有与'108'相关联的值,如下所示:

Person['type'] = "Full Time"

在相关表中,列名是: “id”和“optionValue”

我如何在Laravel 4中这样做?

1 个答案:

答案 0 :(得分: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');
    }

}

/ EDIT

现在你可以找到一个人:

$person = Person::find(1);

以这种方式打印类型:

echo $person->type->name;

应打印“全职”。

我假设你的person_types表有一个'name'列,用于存储你的类型名称。