ارسالها: 252
موضوعها: 83
تاریخ عضویت: اردیبهشت 1394
اعتبار:
0
تشکرها: 313
22 بار تشکر شده در 22 پست
یعنی چطور؟ در فایل config/web.php باید این کارو انجام بدم؟
مدل Admins که ساخته ام در مسیر app/modules/admin/models/Admins.php قرار داره و از مدل Users جداست.
و کاربرد فایل config که ساختیم دقیقا چیه؟
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
فایل کانفیگ ماژول برای تنظیم اولیه فیلدهای public کلاس ماژولتونه. کامپوننت یوزر مال برنامه است نه ماژول. باید توی کانفیگ برنامه تعریف کنید تا بتونید با Yii::$app بهش دسترسی پیدا کنید. برای اینکه سشنهاشون قاطی نشه باید به دو تا کامپوننتتون id های جداگانه هم بدین.
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
تنظیمات config/web.php :
1
2
3
4
5
6
7
8
9
10
11
12
13
'user'=> [
'identityClass'=> 'appmodelsUsers',
'enableAutoLogin'=> true,
'loginUrl'=> ['/site/login'],
'idParam'=> 'user',
],
'admin'=> [
'class'=> 'yiiwebUser',
'identityClass'=> 'appmodelsAdmins',
'enableAutoLogin'=> true,
'loginUrl'=> ['/admin/default/login'],
'idParam'=> 'admin',
],
حالا طبق کدی که گذاشتم، هر دو مدل Users و Admins باید رابط IdentityInterface رو پیاده سازی کنن و هرجا خواستین با Yii::$app->user و Yii::$app->admin به اونها بصورت جداگانه دسترسی پیدا کنید. بخاطر وجود idParam متفاوت، سشنهاشون قاطی نمیشن.
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
متأسفانه فیلم جلسه سوم کارگاه که شرکت کردین بخاطر مشکل صدا قابل ارائه نبود وگرنه توی اون جلسه توضیح داده بودم. فیلم دوره بعدی که 29 آبان برگزار میشه رو براتون میفرستم و این موارد کاملاً داخلش توضیح داده شده.
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
وقتی توی برنامه میگین Yii::$app->user->id یا کلاً بصورت داخلی میخواد خود Yii برحسب id کاربر رو پیدا کنه، id بصورت آرگومان برای متد findIdentity بطور خودکار ارسال میشه. متن خطایی که دریافت میکنین رو بگذارین تا ببینیم مشکل از کجاست.
در نهایت برای اینکه بصورت درست login شویم در فایل loginForm.php ، متد login را تغییر میدهیم(در این متد و هر جای دیگه ای از برنامه که لازم باشه، از Yii::$app->admin بجای Yii::$app->user استفاده میکنیم):