درود
در جلسه ی شش از دستور زیر در کلاس TrackStarActiveRecord استفاده میکنیم
Yii::app()->user->id
من از دستور فوق چیزی متوجه نمی شوم
user که اسم جدول ما نیست درسته؟
با دستور فوق به چه چیزی دسترسی پیدا می کنیم؟
با تشکر
Yii::app()->user شما رو به کامپوننت user که توی فایل تنظیمات main.php تعریف شده و برای مدیریت ورود و خروج و سشن کاربران و... کاربرد داره میرسونه که یه شئ از کلاس CWebUser هست.
استاد انچه متوجه نمی شوم این است که چرا id کاربر جاری در ان جا قرار می گیرد؟
یعنی خودش می فهمد که این کاربر چون با فلان نام کاربری log in کرده پس می روم در جدول user که در پایگاه داده قرار دارد id مربوط به این کاربر را برمی دارم و در Yii::app()->user->id قرار می دهم؟ هم چین چیزی مگر امکان داره؟
اصلا از کجا می داند که باید سراغ کدام جدول در پایگاه داده برود اگر ما نام جدول را به جای user چیز دیگری مثل karbaran گذاشته باشیم چه؟
بله چنین چیزی امکان داره. Yii بطور پیشفرض اول دنبال فیلد name توی جدولی که برای کاربران توی UserIdentity مشخص کردین میگرده و اگه پیدا نکرد، اونوقت دنبال فیلد id میگرده. اگه هیچکدوم رو پیدا نکرد، اولین فیلد جدول رو استفاده میکنه. البته با کمک متدهای getId و getName به روشی که توی پکیج توضیح داده میشه میتونین هر فیلد دلخواه دیگه رو هم مشخص کنید. به ادامه مطالب توی پکیج دقت کنید تا متوجه بشین چطور از جدول Users میریم اطلاعات رو میخونیم و کاربر رو لاگین میکنیم.
من ادامه ی پکیج رو تا جلسه ی هفت خوندم و دیدم که با اطلاعات کاربرها لاگین می کنیم
انچه متوجه نمی شدم و باعث شد این تایپیک رو ایجاد کنم این بود که ارتباط بین user به عنوان کامپوننت و user که نام جدولی از پایگاه داده و به تبع نام یک مدل هم هست چیست و چگونه این ارتباط برگذار می شود که با توجه به توضیح شما فهمیدم که در کلاس UserIdentity این ارتباط برقرار شده حال اگر ممکن است به من بگویید که در کدام سطر از دستوراتی که در UserIdentity می نویسیم این ارتباط ایجاد شده؟
ایا ساخت شی ای از کلاس user باعث می شود که فریم ورک yii بفهمد ما قصد داریم از اطلاعات موجود در این کلاس برای لاگین کردن و مدیریت ورود خروج کاربرها استفاده کنیم؟یعنی خط زیر:
$user=User::model()->find('LOWER(username)=?',array(strtolower($this->username)));
؟
پی نوشت: ببخشید که کد به هم ریخته است کپی کردم کج و کوله تو صفحه قرار گرفت نمی دونم چطور میشه درستش کرد(عذرخواهی)
دقیقاً همینجا گفتیم از جدول Users با کمک مدلی كه ازش ساختیم استفاده کنه. در ادامه هم id و name کامپوننت یوزر رو مقداردهی کردیم.