对于 Codeigniter 中的不同表单请求,需要一个模型方法


need one model method for different form requests in codeigniter

我在 3 种不同的视图中有 3 种形式

<form method="post" action="display/getrow">
<input type="text" name="status">
<input type="submit">
</form>
<form method="post" action="display/getrow">
<input type="text" name="id">
<input type="submit">
</form>
<form method="post" action="display/getrow">
<input type="text" name="name">
<input type="submit">
</form>

和我的数据库表为 3 列(ID/名称/状态)

我需要一个逻辑来设计模型中的 getrow 方法,该方法可以接受任何一个值(ID 或名称或状态),并且它必须显示包含该值的行。

试试这个:

public function getrow() {
  if (isset($_POST['id'])) {
    // run the query for id
  }
  if (isset($_POST['status'])) {
    // run the query for status
  }
  if (isset($_POST['name']) {
    // run the query for name
  }
}

这样,您就不必更新视图。

根据您的描述, display是您的控制器, getrow是方法。只需添加另一个参数即可决定要获取哪个字段:以下是更正后的代码:

<form method="post" action="display/getrow/status">
<input type="text" name="status">
<input type="submit">
</form>
<form method="post" action="display/getrow/id">
<input type="text" name="id">
<input type="submit">
</form>
<form method="post" action="display/getrow/name">
<input type="text" name="name">
<input type="submit">
</form>

在您的方法中:

public function getrow($fieldName = '') {
 // In $fieldName you will get either id, status or name.
 if ($fieldName == 'id') {
  // return id
 }
 if ($fieldName == 'status') {
  // return status
 }
 if ($fieldName == 'name') {
  // return name
 }
}