如何从 laravel 中的 eloquent 集合中获取外键

How to get foreign key from eloquent collection in laravel

我的 User 模型中有 hasMany 关系;

 /**
 * Get the posts for the users.
 */
public function posts()
{
    return $this->hasMany(Posts::class); //foreign key assigned by user_id
}

我需要在 Eloquent 数据

中获取外国 ID

控制器;

use App\Models\User;

$posts = User::find(1)->posts;

foreach ($posts as $post) {
    //
}
//for example
$foreign_key = $posts->foreign_key;
echo "all posts collection assigned foreign key is; ".$foreign_key;

预期输出;

1

如何获取外键?

您可以执行以下操作。由于帖子具有 hasmany 关系,因此它 return 对象集合,即使您在帖子中只有一项。

foreach ($posts as $post) {
     
    echo $post->user_id;
}

 dd($posts->first()->user_id);

如果您仍然需要帖子关系中的一项,那么您可以添加一个关系

public function post()
{
    return $this->hasOne(Posts::class); //foreign key assigned by user_id
}

然后你就可以访问了

$posts = User::find(1)->post;

$foreign_key =$posts->user_id;