PDA

View Full Version : لود كردن مدل در main



shadecute
شنبه 18 بهمن 1393, 01:27 صبح
سلام من واسه قرار دادن يك عكس بالاي سايتم model و controller ساختم و آپلود عكس و همه چيز رو خوب درست كردم و كارم ميكنه
حالا ميخوام main اصلي اين عكس رو لود كنم
اينجوري آدرس دهي كردم

<?php Yii::app()->request->baseUrl;?>images/cover/Full/<?php echo $cover->img ; ?>
خب اين اينجوري كار نمي كنه مجبورم مدلمو لود كنم

$cover= new Cover;
اينجوري درست كار ميكنه

حالا سوال اصلي: آيا اينكاري كه من كردم درسته؟ لود كردن مدل cover در main? ايرادي نداره؟
آيا جوري ديگه ميتونم بدون اينكه مدل كاورمو تو main لود كنم عكس كاورم رو نمايش بدم؟
ممنون

MMSHFE
شنبه 18 بهمن 1393, 08:11 صبح
توی معماری جدید MVC دسترسی به مدل داخل View مشکلی نداره و لازم نیست حتماً کنترلر بهش دسترسی پیدا کنه و بعد برای View پاس بده. منتها اگه قبلش یکسری اعتبارسنجی و کارهای دیگه لازمه که به منطق برنامه مربوط میشه، بهتره توی کنترلر بهش دسترسی پیدا کنید. ازطرفی دقت کنید که توی ویو به پارامترهایی که کنترلر براش ارسال میکنه دسترسی دارین ولی توی Layout نه چون معلوم نیست کدوم ویو بارگذاری شده باشه. برای حل مشکل میتونید توی کنترلر اینطوری کار کنید:

$this->cover = new Cover;
و بعد توی Layout با this->cover$ بهش دسترسی پیدا کنید. درواقع توی Layout به فیلدهای public که برای کنترلر تعریف و ایجاد میکنید دسترسی دارین.