如何在用户模型本身内访问实例化用户(不创建其他关系)?

时间:2016-10-11 20:21:20

标签: laravel

我想通过访问实例化的用户ID来创建自定义方法,例如:

public function ware(){
    return File::where('owner', $this->user->id);
}

同样可以是访问者或范围。然后能够打电话

$user = User::find(5);
$user->ware()->all()...

1 个答案:

答案 0 :(得分:1)

您可以使用Laravel文档here中概述的PK / FK定义关系,然后可以通过以下关系访问它们:

确保您的文件表中包含user_id列,以便该关系能够如上所述运行。

添加到用户模型

/**
 * Get the files for the user.
 */
public function files()
{
    return $this->hasMany('App\File');
}

添加到文件模型

/**
 * Get the user for the file.
 */
public function user()
{
    return $this->hasOne('App\User');
}

然后,您可以像User::find(5)->files获取用户文件)或File::find(5)->user一样访问它以返回文件用户。