I have hasMany relationship in my User model;
/** * Get the posts for the users. */ public function posts() { return $this->hasMany(Posts::class); //foreign key assigned by user_id }
I need to get a foreign id in Eloquent data
Controller;
use AppModelsUser; $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;
Expected output;
1
How can I get the foreign key?
Advertisement
Answer
You can do the following. Since posts has hasmany
relation so it return collection of object even though you have one item in posts.
foreach ($posts as $post) { echo $post->user_id; }
or
dd($posts->first()->user_id);
If you still need one item from posts relationship then you can add one relationship
public function post() { return $this->hasOne(Posts::class); //foreign key assigned by user_id }
then you can access
$posts = User::find(1)->post; $foreign_key =$posts->user_id;