我在CodeIgniter中遇到了问题。
我的代码:
<?php
$kullanici_yetki_id=$this->session->user_sess['id'];
$result= array(
$this->db->select('*'),
$this->db->from('menuler'),
$this->db->join('menu_yetki', 'menuler.menu_id=menu_yetki.menu_id'),
$this->db->where('menuler.is_active', '1'),
$this->db->where('user_id', $kullanici_yetki_id),
$this->db->where('durum', "1"),
$this->db->limit('1')
);
$sorgu=$this->db->query->$result();
if($sorgu->num_rows()>0){
foreach ($sorgu as $row) {
echo $row->menu_adi;
} } else{
echo "nope";
}
?>
当我运行它时,它会返回此错误:
消息:未定义属性:CI_DB_mysqli_driver :: $ query
文件名:admin / _leftmenu.php行号:34
回溯:
文件:C:\ wamp64 \ www \ bireberberci \ application \ views \ admin_leftmenu.php 行:34函数:_error_handler
文件: C:\ wamp64 \ WWW \ bireberberci \程序\控制器\ ADMIN \ Home.php 行:16功能:视图
文件:C:\ wamp64 \ www \ bireberberci \ index.php行:315功能: require_once
而且:
遇到严重错误
的PHP错误消息:方法名称必须是字符串
文件名:admin / _leftmenu.php
行号:34
答案 0 :(得分:1)
您缺少get(),而您的会话部分user_sess ['id']错误
https://www.codeigniter.com/user_guide/general/models.html#loading-a-model
<?php
class Example_model extends CI_Model {
public function example() {
$data = array();
$this->db->select('*');
$this->db->from('menuler');
$this->db->join('menu_yetki', 'menuler.menu_id=menu_yetki.menu_id');
$this->db->where('menuler.is_active', '1');
$this->db->where('user_id', $this->session->userdata('id'));
$this->db->where('durum', "1");
$this->db->limit('1');
$sorgu = $this->db->get();
if($sorgu->num_rows() > 0) {
foreach ($sorgu->result() as $row) {
$data[] = $row->menu_adi;
}
}
return $data;
}
}
答案 1 :(得分:1)
你很接近,但你的语法有点过时了。有关详细信息,请参阅有关query builder的手册。
您最大的错误是将所有数据库调用放入数组中。这更接近你想要的。
$kullanici_yetki_id = $this->session->userdata['id'];
$this->db->from('menuler');
$this->db->join('menu_yetki', 'menuler.menu_id=menu_yetki.menu_id');
$this->db->where('menuler.is_active', '1');
$this->db->where('user_id', $kullanici_yetki_id);
$this->db->where('durum', "1");
$this->db->limit('1');
$sorgu = $this->db->get();
if ($sorgu->num_rows() > 0) {
foreach ($sorgu->result() as $row) {
echo $row->menu_adi;
}
} else {
echo "nope";
}