-
January 15th, 2019, 11:58
#1
سوال درباره استاندرد بودن برنامه در کدیگنایتر
با سلام خدمت اساتید گرامی
من برنامه ای که قبلا بصورت فانکشن بیس نوشتم الان دارم تو فریم ورک کدیگنایتر مینویسم این برنامه ی منو دارم که زیر منو هم داره اینو فقط میشه وقتی که منو اصلی لود میشه تو همون view تو foreach ی while بزنم تا submenu هم زیرش بیاد برای این کار مجبور شدم یک فانکشن بنویسم و تو view به دیتابیس connect بزنم تا while کار کنه که توش ی کوئری دیگه زدم این کاری که انجام دادم استاندارد هست؟
(یعنی تو view ی بخششو php فاکنشن بیس کار کردم چون با سیستم mvc کار نمیکنه
مثلا :
کد PHP:
$this->load->database()
تو view کار نمیکنه که کوئری بزنم
برنامه طوری هستش اول باید forach بزنه منو های اصلی لود بشه بعد هر کدوم زیرمنو داشت زیر منوش بیاد زیرش که واقعا این کارو از طریق model نمیشه انجام داد چون منو اصلی تو view لود میشه و اگه foreach تو foreach بزنم که آرایه شو از model و کنترلر بگیره دوبار زیرمنو هارو چاپ میکنه
-
-
January 15th, 2019 11:58
# ADS
-
January 15th, 2019, 13:04
#2
عضو انجمن
پاسخ : سوال درباره استاندرد بودن برنامه در کدیگنایتر
سلام
وقت بخیر
اول دیتا بیس را auto load کنید که همه جا لود باشه و بتونید هرجایی query بزنید.
حالا برای ساخت منو ها شما کلا دوتا query می خواهید یکی منو اصلی یکی هم زیر منو ها.
کوئری اول را بزنید و با کوئری دوم کل زیر منو ها را بگیرید حالا همه را در یک آرایه مرتب قرار بدهید و آرایه را به صورت cache ذخیره کنید.
می توانید یک مدل ui بسازید و getMenus داخلش باشه که این کار انجام بدهد.
-
تعداد تشکر ها ازShirazSoft.com به دلیل پست مفید
-
January 15th, 2019, 14:48
#3
پاسخ : سوال درباره استاندرد بودن برنامه در کدیگنایتر
خیلی ممنون auto load کردم تو همون صفحه کوئری زدم اوکی شد
در یک آرایه مرتب قرار بدهید و آرایه را به صورت cache ذخیره کنید.
می توانید یک مدل ui بسازید و getMenus داخلش باشه که این کار انجام بدهد.
این 2تارو متوجه نشدم اگه نمونه کد یا آموزش سراغ دارید واسم بفرستید خیلی ممنون.
-
-
January 15th, 2019, 15:11
#4
عضو انجمن
پاسخ : سوال درباره استاندرد بودن برنامه در کدیگنایتر
یعنی منو را به صورت یک ارایه در cache ذخیره کنید تا تعداد کوئری ها کم. شود و سرعت بیشتر شود.
-
تعداد تشکر ها از ShirazSoft.com به دلیل پست مفید
-
January 15th, 2019, 17:01
#5
عضو دائم
پاسخ : سوال درباره استاندرد بودن برنامه در کدیگنایتر
باسلام، با توجه به اینکه کدایگنایتر بر پایه معماری MVC می باشد، خیر کار شما استاندار نمی باشد و هیچ Query نباید در View Layer زده شود، داخل Controller مورد نظر متد خود را فراخوانی کنید و Model را به آن پاس دهید تا منو ها را دریافت کند و بازگشت دهد سپس منو ها را از Controller به View ارسال کنید.
-