Cara Akses Controller Di Dalam View

Halo teman – teman, selamat datang kembali di website tips dan trik Dumet School. Pada kesempatan kali ini saya akan memberikan tips tentang Cara Akses Controller Di Dalam View, ini bertujuan jika teman – teman ingin mengakses controller di dalam tampilan atau views nya.

Tentu dalam beberapa case kita perlukan ini, karena memang di dalam views kurang bagus jika melakukan pemanggilan query yang biasa di kerjakan oleh model. Namun untuk menghindari pemanggilan query langsung pada view kita dapat manfaatkan akses controller di dalam view, meskipun di dalam views kita dapat langsung mengakses model nya langsung.

Tetapi sebaiknya kita gunakan controller sajalah untuk merequest query ke model nya. Baik dalam kasusnya kita punya data menu, yang mana menu nya mempunyai child nya. Jadi perlu kita melakukan looping, dan di dalam looping tersebut kita juga perlu melakukan pemanggilan query.

Silahkan buat table yang berisi field seperti gambar di bawah ini

Cara Akses Controller Di Dalam View

Kemudian kita akan panggil query pada model, saya memberikan nama main_model

public function get_navigation(){
return $this->db->get_where('tbl_menu',['parent_id'=>0])->result();
	}

Kemudian di controller kita panggil model nya

public function index(){	
	$data['result'] = $this->main_model->get_navigation();
	$this->load->view('welcome_message',$data);
	}

Dan kita tampilkan pada views nya dengan kita looping di tag list

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Welcome to CodeIgniter</title>
	<script src="https://code.jquery.com/jquery-3.3.1.js"></script>

</head>
<body>
	<h2>Cara Akses Controller Di Dalam View</h2>
	<ul>
		<?php foreach ($result as $rows) { ?>
			<li><?php echo $rows->name_menu; ?></li>
		<?php } ?>
	</ul>
</body>
</html>

Hasilnya seperti gambar di bawah ini]

Cara Akses Controller Di Dalam View

Kemudian kita akan lakukan looping lagi untuk request query ke models, dan kita berikan seperti di bawah ini

<ul>
		<?php foreach ($result as $rows) { ?>
			<?php 
				$query = $controller->get_menus($rows->id);
				if($query->num_rows() > 0){
			 ?>
				<li><?php echo $rows->name_menu; ?>
					<ul>
						<?php foreach ($query->result() as $_rows) { ?>
							<li><?php echo  $_rows->name_menu; ?></li>
						<?php } ?>
					</ul>
				</li>
			<?php }else{ ?>
				<li><?php echo $rows->name_menu; ?></li>
			<?php } ?>
		<?php } ?>
	</ul>
Cara Akses Controller Di Dalam View

Teman – teman bisa lihat variable query yang isi nya memanggil controller, kemudian pada controller kita tambahkan keyword this

Cara Akses Controller Di Dalam View

Kemudian di dalam controller kita buat lagi method nya

public function get_menus($id){	
		return $this->main_model->get_nav($id);
	}
Cara Akses Controller Di Dalam View

Kemudian di dalam main_model kita request query lagi untuk mengambil data hanya yang ada parent_id nya saja

public function get_nav($id){
		return $this->db->get_where('tbl_menu',['parent_id'=>$id]);
	}
Cara Akses Controller Di Dalam View
Cara Akses Controller Di Dalam View

Kemudian kita save dan jalankan kembali pada browsernya, maka hasilnya seperti gambar di bawah ini

Cara Akses Controller Di Dalam View

Demikianlah artikel tentang Cara Akses Controller Di Dalam View, semoga bisa menambah ilmu teman – teman pada codeigniter nya. Teman – teman dapat gunakan ini pada kurang lebih kasus seperti artikel kali ini. Terimakasih dan sampai jumpa.

Hernowo Author

Leave a Reply

Your email address will not be published. Required fields are marked *