دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ مرتضی زندیه
دسترسی به مدل در ویو
محسن موحد حل شده توسط محسن موحد

سلام وقت بخیر

چرا ما در کنترلرها، خود مدل رو به ویو پاس میدیم، در این صورت همون طور که در زمان 1:15 ویدیو اشاره شد، در ویو امکان زدن کوئری و کال کردن متد‌های where و ... امکان پذیره!

بهت نیست که entity بسازیم؟

سلام،

بله درسته و راههای دیگری مثل Repository Pattern و Service Layer هم کمک میکنه.

اگه توی ویو مستقیم کوئری بزنیم و مدل رو صدا بزنیم، کد غیرقابل نگهداری میشه، اصل Separation of Concerns نقض میشه و حتی ممکنه مشکل N+1 پیش بیاد. ویو فقط باید مسئول نمایش باشه و نباید کاری به بیزینس لاجیک داشته باشه و کنترلر هم فقط دیتا رو از مدل یا سرویس میگیره و تحویل ویو میده. اینجوری وابستگی لایه‌‌ها کم میشه و اصول سالید مثل SRP و OCP و DIP هم نقض نمیشه، چون هر لایه وظیفه مخصوص خودش رو انجام میده و نیازی نیست برای تغییر توی مدل، دست به کد ویو ببریم.

بهترین پاسخ
محسن موحد ۲۳ دی ۱۴۰۳، ۲۲:۱۴