2015-08-16 55 views
1

林與自定義的PHP MVC應用程序的工作如何創建功能和使用自定義的PHP MVC

我檢索使用這種方法的帖子列表的變量傳遞給它:

機型: videos_model.php

class Index_Model extends Model { 
    public function fetchVideos(){  
     $stmt = $this->db->prepare("SELECT * FROM bv_videos"); 
     $stmt->setFetchMode(PDO::FETCH_OBJ); 
     return $stmt->fetchAll(); 

    } 
} 

控制器: video.php 類指數擴展控制器{

public function index(){  

     $this->view->render('../../public/templates/header');  
     $this->view->Videos   = $this->model->fetchVideos();  
     $this->view->render('index/index'); 
     $this->view->render('../../public/templates/footer'); 
    } 
} 

瀏覽:

<div class="entry-header video_frame_description"> 
    <h3><?php echo $value->title; ?></h3> 

    <p class="pull-left post-info">   
     <span class="cat-links hidden-xs"> 
      <a href="<?php echo URL; ?>?cat=<?php echo $value->cat_id; ?>"> 
      Category: 
      ** HERE I WANT TO ADD CATEGORY NAME UNDER EACH POST ** 
      </a> 
    </p> 
</div> 

在視圖中,我想說明的視頻的名稱類別在每個職位下。

我在指數類

public function get_video_category($cat_id){   

     $stmt = $this->db->prepare("SELECT * FROM bv_categories WHERE cat_id=?"); 
     $stmt->execute(array($cat_id)); 
     $stmt->setFetchMode(PDO::FETCH_OBJ);  
     $data = $stmt->fetch(); 
     return $data->category; 
} 

創造了這個功能,然後在控制器添加此行:

$this->view->video_category = $this->model->get_video_category();  

而且這裏的問題。我應該傳遞什麼參數get_video_category()函數?

以下是使用的表結構IM:

bv_videos

CREATE TABLE IF NOT EXISTS bv_videosvideo_id INT(11)NOT NULL AUTO_INCREMENT,
title VARCHAR(255)NOT NULL, url text NOT NULL,
cat_id int(11)NOT NULL,
date_added INT(11)NOT NULL, status INT(11)NOT NULL,
PRIMARY KEY(video_id) )ENGINE = InnoDB的默認字符集= UTF8 AUTO_INCREMENT = 14;

bv_categories

CREATE TABLE IF NOT EXISTS bv_categoriescat_id INT(11)NOT NULL AUTO_INCREMENT, category VARCHAR(100)NOT NULL, order_cat INT(11)NOT NULL DEFAULT主鍵(cat_id) )ENGINE = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 6;

回答

1

我想這個查詢

"SELECT * FROM bv_videos" 

延伸到

SELECT v.*, c.category as category_name FROM bv_videos v, bv_categories c WHERE v.cat_id = b.cat_id and v.cat_id = " . $cat_id; 

或使用左加入

,然後在視圖只是調用類相同的方式,您使用類ID

<a href="<?php echo URL; ?>?cat=<?php echo $value->cat_id; ?>"> 
Category name is: $value->category_name; 

你的道:

$this->view->video_category = $this->model->get_video_category(); 

您需要輸入類別ID,這似乎是$值 - > CAT_ID;如果你打電話從視圖

+0

非常感謝,它完美的使用左連接:) – Devstar

+0

高興地幫助你:)感謝您的投票 –

相關問題