با سلام بنده از این کد چنین خروجی دریافت می کنم
$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');
}درود
نوع رابطه نباید hasMany باشه... مگر اینکه قصد شما این باشه که: هر مقاله متعلق به چندین کاربر باشه.
public function user()
{
return $this->belongsTo(User::class);
}
به طور کلی رابطهای که در این مورد پیادهسازی میشه به این شکله:
موفق باشید
@ali.bayat
@bahram
ممنون از زاهنمایتون عالی بود