با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که دوره آموزش codeigniter را دنبال می کنند. در جلسه قبل با نحوه مدیریت جلسات در codeigniter آشنا شدیم. در این جلسه قرار است به آموزش flashdata در codeigniter بپردازیم.
اهمیت ذخیره سازی و حذف داده ها موجب شد که سازندگان codeigniter به ساخت و ایجاد flashdata اقدام نمایند. ضرورت همین دلیل ما را به تهیه و ارائه آموزش flashdata در codeigniter وا داشت. در ادامه جلسه آموزش flashdata در codeigniter به نحوه افزودن و بازیابی flashdata در codeigniter می پردازیم.
هنگام ساخت برنامه های تحت وب، یک بار داده ها را ذخیره کرده و پس از استفاده آن ها را حذف می نماییم. برای مثال می توان به زمان نمایش پیام خطا یا نمایش پیام اطلاعاتی اشاره کرد. در PHP، می توان این کار را به صورت دستی انجام داد. اما در codeigniter قابلیت flashdata این کار بسیار ساده کرده است. flashdata داده ها را تنها تا هنگام درخواست بعدی نگه می دارد و بعد از آن داده ها را به صورت خودکار حذف خواهد نمود.
به راحتی می توان Flashdata را به صورت زیر ذخیره کرد.
1 | $this->session->mark_as_flash('item'); |
کارکرد mark_as_flash() برای این ساخته شده که فقط بخشی از یک argument از یک مقدار را مورد استفاده قرار دهد.
با استفاده از این کارکرد می توان یک array را برای انتقال ذخیره نمود.
از کارکرد set_flashdata() نیز می توان برای افزودن flashdata استفاده کرد. این کارکرد همان طور که در خط زیر می بینید از دو argument یعنی نام و مقدار استفاده می کند. این کارکرد قابلیت انتقال array را نیز دارد.
1 | $this->session->set_flashdata('item','value'); |
برای بازیابی flashdata می توان از کارکرد () Flashdata استفاده کرد. که همان طور که در خط زیر می بینید یک argument را از یک آیتم می گیرد. کارکرد () Flashdata شما را مطمئن می سازد که تنها از یک flashdata و نه سایر دیتاها استفاده می کنید.
1 | $this->session->flashdata('item'); |
اگر نمی توانید هیچ argument را انتقال دهید در آن صورت یک array با کارکرد مشابه دریافت خواهید کرد.
یک کلاس با نام FlashData_Controller.php ایجاد کنید و آن را در application/controller/FlashData_Controller.php ذخیره کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php class FlashData_Controller extends CI_Controller { public function index() { //Load session library $this->load->library('session'); //redirect to home page $this->load->view('flashdata_home'); } public function add() { //Load session library $this->load->library('session'); $this->load->helper('url'); //add flash data $this->session->set_flashdata('item','item-value'); //redirect to home page redirect('flashdata'); } } ?> |
یک فایل نمایش با عنوان flashdata_home.php بسازید و آن را application/views/ flashdata_home.php در ذخیره کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>CodeIgniter Flashdata Example</title> </head> <body> Flash Data Example <h2><?php echo $this->session->flashdata('item'); ?></h2> <a href = 'flashdata/add'>Click Here</a> to add flash data. </body> </html> |
این تغییرات را در routes.php در application/config/routes.php فایل ایجاد کنید و خط زیر را در انتهای فایل اضافه کنید.
1 2 | $route['flashdata'] = 'FlashData_Controller'; $route['flashdata/add'] = 'FlashData_Controller/add'; |
مثال بالا را با مراجعه به لینک زیر اجرا کنید. yoursite.com را با URL سایت خود جایگزین کنید.
1 | http://yoursite.com/index.php/flashdata |
بعد از بازدید از URL بالا، نتیجه را به صورت زیر خواهید دید.
روی پیوند “کلیک کنید” کلیک کنید؛ صفحه ای به صورت زیر برای شما به نمایش در خواهد آمد. در این صفحه می توانید مقدار متغیر flashdata را ببینید. دوباره صفحه را Refresh نمایید؛ صفحه ای به شکل زیر خواهید دید که در آن مقدار متغیر flashdata به صورت خودکار حذف شده است.
در این جلسه آموزشی از سلسله جلسات آموزش کدایگنایتر شما را با قابلیت flashdata در codeigniter آشنا کردیم. در جلسه بعد قرار است به قابلیت tempdata در این فریم ورک بپردازیم.
با پی وی لرن همراه باشید.