将段发送到模型的最佳实践?

时间:2012-01-28 01:57:36

标签: model-view-controller codeigniter

我想知道在将片段发送到模型之前的最佳做法是什么。

例如:

从中获取segment1 BASE_URL /控制器/ QUERY_DETAIL / SEGMENT1

在我的控制器上

public function query_detail($segment1)
{
//what are the best practice before I send the segment1 to the Model?
   $this->load->model('model');
   $this->model->query($segment1);   
   ......  
} 

我希望我解释清楚。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

如果您指的是向模型发送数据以运行插入或使用该数据进行更新,那么最佳做法是在用户提交输入时验证输入。然后,由于codeigniter在用作绑定数据时会清理数据,因此您可以像这样运行插入;

# This would be in your model...not your controller
function store_data($post_data) {
  $sql = "INSERT INTO some_table set (fld1, fld2, fld3) VALUES (?, ?, ?)";
  $binds = array($post_data['fld1'], $post_data['fld2'], $post_data['fld3']);
  $this-db->query($sql, $binds);
}

或者,如果所有传入表单的输入标记名称与您的数据库列名称匹配,那么您可以简单地执行此操作;

# This would be in your model...not your controller
function store_data($post_data) {
  $sql = "INSERT INTO some_table set (fld1, fld2, fld3) VALUES (?, ?, ?)";
  $binds = array($post_data);
  $this-db->query($sql, $binds);
}

或者这个;

# This would be in your model...not your controller
# Using ActiveRecord
function store_data($post_data) {
  $this->db->insert('some_table', $post_data);
}