PDA

View Full Version : کار کردن با ماژول ها



masiha68
شنبه 02 اسفند 1393, 08:48 صبح
سلام
من واسه ادمین یه ماژول ساختم ولی حالا چندتا مشکل دارم
یکی اینکه چطوری به مدل داخل خود ماژول اشاره کنم و ازش سلکت بگیرم


$option=Option::model()->find();

البته اینم بگم که توی سیستم من هم قسمت ماژول ادمین یک مدل option داره و هم قسمت اصلی سایت

Veteran
شنبه 02 اسفند 1393, 09:23 صبح
در همون اپلیکیشن اصلی کفایت میکنه و میتونید در همه جا استفاده کنید

masiha68
شنبه 02 اسفند 1393, 09:37 صبح
نه خب ... ببینین فرض کنید من یه مدل اپشن توی ماژول ادمین دارم و یه مدل هم به اسم اپشن توی مدل های سایت دارم ... حالا
$option=Option::model()->find(); به کدومشون اشاره می کنه ؟؟؟
راهی ک توی نت پیدا کردم این بود
Yii::app()->getModule(modir);

Veteran
شنبه 02 اسفند 1393, 10:07 صبح
این به مدل توی اپلیکیشن اصلی اشاره میکنه، چون توی ماژول import میشه.
حالا اینکه چطور به مدل های ماژول دسترسی داشته باشیم رو اطلاع ندارم!

masiha68
یک شنبه 03 اسفند 1393, 08:58 صبح
کسی نیست کمک کنه ... یا روش من درسته
یعنی کسی تا حالا این مشکل واسش پیش نیومده ؟

MMSHFE
سه شنبه 05 اسفند 1393, 10:17 صبح
بهتره از namespaceها استفاده کنید یا اینکه سعی کنید همنام نگذارین.

masiha68
سه شنبه 05 اسفند 1393, 10:31 صبح
درسته ...ولی اون روش (
Yii::app()->getModule(modir);) درسته یا نه ؟
استفاده از نیم سپس ها چطوریه ؟ فک کنم این توی یی 2 باشه ...من هنوز روی یی 1 کار می کنم

MMSHFE
سه شنبه 05 اسفند 1393, 11:08 صبح
اون فقط ماژول رو لود میکنه. به مدل کاری نداره که. ضمناً مدل اکتیو رکورد که به جداول دیتابیس ارتباط داره رو چرا جداگانه ایجاد کردین؟ کاربران که به مدل دسترسی مستقیم ندارن و شما توی کنترلرهاتون صداش میزنید. اکشنهای کنترلرها رو هم با میتونید محدود کنید (یا کلاً توی ماژول یه کنترلر بسازین و یا اینکه با سطح دسترسی کنترلرشون کنید). مدلها رو نیاز نیست کپی کنید. مگه اینکه یکسری مدل مخصوص ماژول باشه که معمولاً CFormModel هستن نه CActiveRecord

webnevesht
سه شنبه 05 اسفند 1393, 13:08 عصر
یعنی مثلا اگه یه مدل Post داشته باشیم نیازی نیست یه مدل جداگانه توی ماژول ادمین بسازیم براش؟

MMSHFE
سه شنبه 05 اسفند 1393, 13:38 عصر
دقیقاً همینطوره. مدلهای توی پوشه models توی کل پروژه معتبر هستن.