查看无法识别PHP中的模型方法

时间:2015-04-26 04:53:42

标签: php model-view-controller

我能够在视图中成功加载模型,但视图无法识别模型内的方法。任何人都可以指出我哪里出错了。我正在使用PIP MVC框架http://gilbitron.github.io/PIP/

P.S。我是MVC的新手。

Model.php

class Model {

private $connection;

public function __construct()
{
    global $config;

    $this->connection = mysql_pconnect($config['db_host'], $config['db_username'], $config['db_password']) or die('MySQL Error: '. mysql_error());
    mysql_select_db($config['db_name'], $this->connection);
}

public function execute($qry)
{
    $exec = mysql_query($qry) or die('MySQL Error: '. mysql_error());
    return $exec;
}

我的模特

class Listing_model extends Model {
  public function createNewJob($by) {       
    $result = $this->execute('INSERT INTO job_listings (by_user_id) VALUES ('.$by.')');
    return $result;     
}
}

控制器:

function create() {     

    $template = $this->loadView('post_jobs_view');
    $model = $this->loadModel('Listing_model'); 
    $template->render();        
}

查看:

if (isset($_POST['savejob'])) {
            $by_user_id = 1111;
            Listing_model::createNewJob($by_user_id);
        }

1 个答案:

答案 0 :(得分:2)

首先,你还没有创建静态函数,所以你可能不应该静态调用它。看起来像PIP将模型实例加载到变量中。

$model = $this->loadModel('Listing_model'); 
$model->createNewJob($by_user_id);

这让我想到第二点,这段代码似乎比视图更适合控制器。您可能想要了解如何在MVC中处理逻辑以及在视图中适当的代码。