با سلام بنده از این کد چنین خروجی دریافت می کنم
$articles = Article::with('user')->latest()->take(۶)->get();
foreach ( $articles as $article){
return $article->user;
}
id ۱
level "admin"
name "sina"
email "sinkoosha@gmail.com"
created_at "۲۰۱۹-۰۹-۰۳ ۰۷:۱۹:۱۶"
updated_at "۲۰۱۹-۰۹-۰۳ ۰۷:۱۹:۱۶
ولی چنین مقداری را ` return $article->user->name
فرا خوانی می کنم متغیر name رو شناسایی نمی کنه
لطفا راهنمایی کنید با تشکر
این جوری که شما user رو تعریف کردید یعنی هر مقاله مربوط به چند کاربر میشه پس باید همون article->user$ رو هم داخل حلقه بذارید ولی اصولا چون هر مقاله مربوط به یک کاربره باید user رو به صورت زیر بنویسید
public function user(){
return $this->belongsTo(User::class , 'id' , 'user_id');
}
در اینصورت کد خودتون اجرا میشه.
جالب این جاست که وقتی توی مدل article قصد تعریف متد user رو داشتم مجبور شدن چنین تعریفی کنم
public function user(){
return $this->hasMany(User::class , 'id' , 'user_id');
}
این جوری که شما user رو تعریف کردید یعنی هر مقاله مربوط به چند کاربر میشه پس باید همون article->user$ رو هم داخل حلقه بذارید ولی اصولا چون هر مقاله مربوط به یک کاربره باید user رو به صورت زیر بنویسید
public function user(){
return $this->belongsTo(User::class , 'id' , 'user_id');
}
در اینصورت کد خودتون اجرا میشه.
درود
نوع رابطه نباید hasMany باشه... مگر اینکه قصد شما این باشه که: هر مقاله متعلق به چندین کاربر باشه.
public function user()
{
return $this->belongsTo(User::class);
}
به طور کلی رابطهای که در این مورد پیادهسازی میشه به این شکله:
موفق باشید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟