如何更改laravel模型中的列?

时间:2018-05-15 19:48:57

标签: php laravel

我在laravel中有两列:iphostname。在所有刀片中,我写了$server->ip。我需要在这种情况下做模特:

$server->ip = $server->hostname !== NULL ? $server->hostname : $server->ip

我如何在模特中做到这一点?

当我写$server->ip时,我需要从这个条件中获取值..

2 个答案:

答案 0 :(得分:0)

在你的模型中添加这个功能:

public function getIpAttribute()
{
    return $this->hostname !== NULL ? $this->hostname : $this->ip;
}

答案 1 :(得分:0)

您应该提供您正在使用的laravel版本 - 但我认为您正在寻找的版本存在于最新版本中。这可以通过Server eloquent模型上的mutator来完成。

https://laravel.com/docs/5.6/eloquent-mutators

class Server extends Model
{
    /**
     * Get the server identity.
     *
     * @return String
     */
    public function getServerIdentityAttribute()
    {
        return $this->hostname !== NULL ? $this->hostname : $this->ip;
    }
}

定义属性后,您将可以使用$server->server_identity;

访问该属性