在我的代码中,我有两张表1. cv_products
2。cv_category
。
cv_produucts
字段是 - > id
,title
,body
,image
,category
,slug
。
cv_category
字段为 - > id
,name
。
我希望当我进入详情页面时,它会给我一个错误,name
未定义但我加入了这些表格。
我能够在列表页面中获取数据,name
。cv_category
从cv_products
表中获取category
类别没有问题。
模型:
class Product_model extends CI_Model{
public function __Construct(){
$this->load->database();
}
public function get_products($slug = FALSE){
if($slug === FALSE){
$this->db->order_by('cv_products.id', 'DESC');
$this->db->join('cv_category','cv_category.id = cv_products.category', 'left');
$query= $this->db->get('cv_products');
return $query->result_array();
}
$query= $this->db->get_where('cv_products', array('slug' => $slug));
return $query->row_array();
}
}
控制器
public function index(){
$data['subview']= 'pages/listing';
$data['cv_products'] = $this->Product_model->get_products();
$this->load->view('layout_main',$data);
print_r($data['cv_products']);
}
public function view($slug= NULL){
$data['post'] = $this->Product_model->get_products($slug);
if(empty($data['post'])){
show_404();
}
$this->load->view('pages/product_view',$data);
}
public function get_categories(){
$this->db->order_by('name');
$query = $this->db->get('cv_category');
return $query->result_array();
}
视图:
<div class="col-5">
<p><?php echo $post['title'] ?></p>
<p><?php echo $post['body'] ?></p>
<p><?php echo $post['name'] ?></p>
</div>
答案 0 :(得分:1)
当$ slug有价值时,你错过了加入类别表。试试:
public function get_products($slug = FALSE){
if($slug === FALSE){
...
}
$this->db->join('cv_category','cv_category.id = cv_products.category', 'left');
$query= $this->db->get_where('cv_products', array('slug' => $slug));
return $query->row_array();
}
}
答案 1 :(得分:0)
在您的查询中实际上未选择类别名称,您加入两个表格的确如此,但您必须从中选择列。
<script href="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(window).on('scroll', function(){
if($(window).scrollTop()){
$('nav').addClass('black');
}else{
$('nav').removeClass('black');
}
})