Laravel:获取模型类中的当前对象

iam*_*esy 1 php laravel laravel-3

我想知道在访问该对象的方法时是否可以访问当前对象.例如,fullname()下面的方法用于获取用户的全名.

class User extends Eloquent 
{

    public function itineraries() {
        return $this->has_many('Itinerary', 'user_id');
    }

    public function reviews() {
        return $this->has_many('Placereview', 'user_id');
    }

    public function count_guides($user_id){
        return Itinerary::where_user_id($user_id)->count();
    }

    public static function fullname() {
        return $this->first_name . ' ' . $this->last_name; // using $this as an example
    }
}
Run Code Online (Sandbox Code Playgroud)

用户具有first_name字段和last_name字段.无论如何我能做到

$user = User::where('username', '=', $username)->first();

echo $user->fullname();
Run Code Online (Sandbox Code Playgroud)

无需传入用户对象?

Phi*_*rks 7

你几乎就在那里,你只需static要从代码中删除它.静态方法对类进行操作,而不是对象; 所以$this在静态方法中不存在

public function fullname() {
    return $this->first_name . ' ' . $this->last_name;
}
Run Code Online (Sandbox Code Playgroud)