gpt4 book ai didi

php - Laravel 5 - 用户个人资料图片

转载 作者:行者123 更新时间:2023-11-29 01:38:56 25 4
gpt4 key购买 nike

我正在处理的应用程序有一个小问题..

我有以下表格:

1. Users

id,
first_name,
last_name

2. File_uploads
id,
name,
location

3. profile_link
id,
user_id,
file_id

在个人资料链接中,我已将 ( user_id ) 设置为 id 的外键在 Usersfile_idid 的外键在 file_uploads表。

我创建了一个名为 Fileuploads 的模型并将以下内容添加到 User 中型号:

  public function profile_image()
{
return $this->hasOne('App\Fileuploads');
}

因为用户将在用户部分上传 1 个文件,即他们的个人资料图片。尝试访问时出现以下错误:

$user = \App\User::find(2);
dd($user->profile_image)

Column not found: 1054 Unknown column 'file_upload.user_id' in 'where clause' (SQL: select * from `file_upload` where `file_upload`.`user_id` = 2 and `file_upload`.`user_id` is not null limit 1)

但我并没有尝试访问 user_idfile_uploads 上因为这就是为什么我有一个链接表,但在这个例子中它看起来不像是在注册它。

有人有什么想法吗?

更新:

如果记录在file_uploads更改为与用户“2”相同的 ID,我使用:return $this->hasOne('App\Fileuploads', 'id', 'id');然后立即找到配置文件。但是我该怎么做,链接到链接表?

最佳答案

您的表描述的关系是 UsersFile_uploads 之间的多对多关系,使用 profile_link 作为您的链接表。

如果您使用 belongsToMany()而不是 profile_image 关系上的 hasOne(),您可以让它为您处理链接表。像这样:

public function profile_image()
{
return $this->belongsToMany('App\Fileuploads', 'profile_link', 'user_id', 'file_id');
}

因为这被建模为多对多,预计每个用户会有/可能有 > 1 个 File_uploads 记录,因此您会得到一个集合并需要访问它像这样:

$user = \App\User::find(2);
dd($user->profile_image[0])

关于php - Laravel 5 - 用户个人资料图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31449982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com