نمایش نتایج 1 تا 6 از 6

نام تاپیک: چطور از parent id به نام آن برسم؟ (حل شد)

  1. #1

    چطور از parent id به نام آن برسم؟ (حل شد)

    سلام
    من برای پاسخ به کامنت ها در جدول parent_id ایجاد کردم. حالا نظر ارسال میشه و بقیه چیزا همه درست کار میکنه
    می خوام در ویو نشون بدم که مدیر در پاسخ به نام ارسال کننده پاسخ را ارسال کرده است
    نام همه ارسال کننده ها در author ذخیره میشه
    parent هم در parent_ id
    حالا نام ارسال کننده رو اینجوری نشون میدم
    echo $comment->author; 

    و شماره parent رو هم اینجوری
    $comment->parent_id

    که شماره parent_id هم بدرستی نمایش داده میشه
    حالا چظوری به جای اون parent_id نام طرف رو نشون بدم؟ از parent_id به author برسیم و نام کاربر رو نشونش بدیم؟
    آخرین ویرایش به وسیله shadecute : سه شنبه 21 بهمن 1393 در 14:48 عصر

  2. #2

    نقل قول: چطور از parent id به نام آن برسم؟

    سلام
    این طوری که من متوجه شدم شما هیچ وقت نمی تونی از parent_id به کاربر برسی
    اول باید یک فیلد درست کنی که کد کاربرکه این کامنت رو زده در خودش ذخیره کنه
    و این فیلد رو به جدول کاربرانت ارتباط بدی
    بعد نحوه دسترسی اینطوری میشه

    $model->User->name

  3. #3

    نقل قول: چطور از parent id به نام آن برسم؟

    با سلام اگر در سیستم شما در جدول نظرات ای دی کسی که نظر ارسال می کنرو ذخیره نمی کنین(کاربران غیر ثبت نامی هم می تونن نظر ارسال کنند) و بجاش ی فیلد گذاشتین که نام ارسال کنندرم هنگام ارسال نظر می گیرین می تونین این روشو پی بگیرین که وقتی ادمین نظر میده در کنترلر پک کنه اگر این ادمینه داره جواب مده property نام ارسال کننده یا همون author مساوی نام ادمین قرار بدین مثلا ی همچین چیزی :


    //زcheck if statement for this user is amdin?
    $model->author ='name of admin';


    بعد مثل قبل نام را دریافت کنید
    البته اینکارو می تونین تو تابع before save مدل کامنتم انجام بدین

  4. #4

    نقل قول: چطور از parent id به نام آن برسم؟

    نقل قول نوشته شده توسط jionelmessi مشاهده تاپیک
    با سلام اگر در سیستم شما در جدول نظرات ای دی کسی که نظر ارسال می کنرو ذخیره نمی کنین(کاربران غیر ثبت نامی هم می تونن نظر ارسال کنند) و بجاش ی فیلد گذاشتین که نام ارسال کنندرم هنگام ارسال نظر می گیرین می تونین این روشو پی بگیرین که وقتی ادمین نظر میده در کنترلر پک کنه اگر این ادمینه داره جواب مده property نام ارسال کننده یا همون author مساوی نام ادمین قرار بدین مثلا ی همچین چیزی :


    //زcheck if statement for this user is amdin?
    $model->author ='name of admin';


    بعد مثل قبل نام را دریافت کنید
    البته اینکارو می تونین تو تابع before save مدل کامنتم انجام بدین
    دقیقا همینطوره .بازدیدکننده های عادی می تونن نظر بدن و نیازی به ثبت نام نیست و نامشون در author ثبت میشه .
    ولی فقط مدیر می تونه پاسخ بده و کاربران عادی نمی تونن پاسخ بدن اینجوری نوشتمش
    demo.jpg
    این عکس دیتا بیس . ببینید وقتی parent_id کامنت طرف رو نشون میده چرا نمی تونم نامشو نشون بدم گیچ شدم .یعنی هیچ راهی نداره؟
    برای مثال کامنت شماره 14 در پاسخ به کامنت 11 بوده و parent_id 11 رو داره حالا کامنت 11 من یک نام به اسم faraz داره اون اسم رو چطوری لود کنم هر کاری میکنم نمیشه

  5. #5

    نقل قول: چطور از parent id به نام آن برسم؟

    از relationها استفاده کردین؟ parent_id کلید خارجی به کدوم جدوله؟ همینطوری بدون اطلاعات دقیق از دیتابیس و ساختار مدلهاتون نمیشه راهنمایی کنیم. اگه parent_id فیلد والد کامنت رو مشخص میکنه (این کامنت جواب کدوم کامنت هست) باید relation بزنید تا بتونین کار کنید وگرنه باید اینطوری انجام بدین:
    if($parent = Comments::model()->findByPk($model->parent_id)) {
    echo $parent->author;
    }
    else {
    echo 'No parent';
    }

    اما اگه relation داشته باشین:
    public function relations()
    {
    return array(
    array('parent', self::BELONGS_TO, 'Comments', 'parent_id'),
    array('replies', self::HAS_MANY, 'Comments', 'parent_id'),
    );
    }

    اونوقت میتونین با $model->parent به والد یک کامنت و با $model->children به پاسخهای یک کامنت دسترسی پیدا کنید. مثال:
    echo $model->parent->author;

  6. #6

    نقل قول: چطور از parent id به نام آن برسم؟

    ممنون از شما
    با استفاده از relation ها که شما و یکی از دوستان فرمود حل شد
    باید کمی بیشتر از relation ها استفاده کنم اطلاعاتم کمه در این مورد
    بازهم ممنونم

تاپیک های مشابه

  1. سوال: چطور در صفحه اصلی برنامه نام کاربر loginکرده را نشان دهیم
    نوشته شده توسط lahtagolfa در بخش C#‎‎
    پاسخ: 2
    آخرین پست: پنج شنبه 22 دی 1390, 17:42 عصر
  2. پاسخ: 2
    آخرین پست: دوشنبه 18 مهر 1390, 15:26 عصر
  3. چطور نام یوزر را برداشت و جای دیگه از اون استفاده کرد؟
    نوشته شده توسط Asad.Safari در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: دوشنبه 15 تیر 1383, 11:17 صبح
  4. چطور از یک تیبل بانک اکسس یک کپی با نام متفاوت بسازم؟
    نوشته شده توسط saeed_82 در بخش برنامه نویسی در Delphi
    پاسخ: 10
    آخرین پست: جمعه 22 خرداد 1383, 10:50 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •