sina
5 سال پیش توسط sina مطرح شد
6 پاسخ

عدم شناسایی name از متد user

با سلام بنده از این کد چنین خروجی دریافت می کنم

 $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 رو شناسایی نمی کنه
لطفا راهنمایی کنید با تشکر

@hesammousavi


ثبت پرسش جدید
بهرام
تخصص : Laravel Developer
@bahram 5 سال پیش مطرح شد
1

این جوری که شما user رو تعریف کردید یعنی هر مقاله مربوط به چند کاربر میشه پس باید همون article->user$ رو هم داخل حلقه بذارید ولی اصولا چون هر مقاله مربوط به یک کاربره باید user رو به صورت زیر بنویسید

public  function  user(){

        return $this->belongsTo(User::class , 'id' , 'user_id');
    }

در این‌صورت کد خودتون اجرا میشه.


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
1

به شکل زیر چک کنید

$article->user['name']

sina
@sinkoosha 5 سال پیش مطرح شد
0

به این شکل هم جواب نداد تست کرده بودم


sina
@sinkoosha 5 سال پیش مطرح شد
0

جالب این جاست که وقتی توی مدل article قصد تعریف متد user رو داشتم مجبور شدن چنین تعریفی کنم

  public  function  user(){

        return $this->hasMany(User::class , 'id' , 'user_id');
    }

بهرام
تخصص : Laravel Developer
@bahram 5 سال پیش مطرح شد
1

این جوری که شما user رو تعریف کردید یعنی هر مقاله مربوط به چند کاربر میشه پس باید همون article->user$ رو هم داخل حلقه بذارید ولی اصولا چون هر مقاله مربوط به یک کاربره باید user رو به صورت زیر بنویسید

public  function  user(){

        return $this->belongsTo(User::class , 'id' , 'user_id');
    }

در این‌صورت کد خودتون اجرا میشه.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

درود
نوع رابطه نباید hasMany باشه... مگر اینکه قصد شما این باشه که: هر مقاله متعلق به چندین کاربر باشه.

public  function  user()
{
        return $this->belongsTo(User::class);
}

به طور کلی رابطه‌ای که در این مورد پیاده‌سازی میشه به این شکله:

  • هر کاربر میتونه چندیدن مقاله داشته باشه (User hasMany Articles)
  • هر مقاله متعلق به یک کاربر است (each Article belongsTo a User)

موفق باشید


sina
@sinkoosha 5 سال پیش مطرح شد
0

@ali.bayat
@bahram
ممنون از زاهنمایتون عالی بود


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام