参数太少,无法在 PHP(Codeigniter) 中使用连接表来函数 CI_DB_query_builder::joi



我正在尝试减少模型中的所有方法,所以我决定让它成为一个动态的。在创建用于插入,更新,获取,删除的动态时完成,但在创建用于连接2个表的动态时出现问题。

遇到错误:

"参数太少,无法实现 CI_DB_query_builder::join((,1 传递 in C:\xampp\htdocs\snapmatic\application\models\Crud_model.php on line 130 和至少 2 预期"'

注意:在这个项目中,我正在做的模块是"关注",用户可以关注特定的人(如Instagram(。我有 2 个表命名:用户和以下。

在我的"下表"中,我的列是:id、user_id 和 user_following。user_id是帐户登录的位置,user_following是您关注的帐户。

Scenario: In my table users, you have 2 data: Person 1 and Person 2
Person 1 account is logged in then Person 1 followed Person 2.

人员 1 单击按钮后,在我的以下表中将如下所示:

id: 1 user_id: 1 user_follow:2

这是我的控制器

$id = $this->session->user_id;
$where = array('following.user_id => $id');
$join  = array('following,following.user_following = users.id');
$fetch_following = $this->Crud_model->join_table('*','users',$where,$join);
//Also tried these
//$where = "('following.user_id', $id)";
//$where = "'following.user_id', $id)";
//$where = "('following.user_id, $id')";
//$where = "'following.user_id, $id'";
//$join  = "'following,following.user_following = users.id'";
//$join  = "('following,following.user_following = users.id')";
//$join  = "('following','following.user_following' = 'users.id')";

public function join_table($tag,$table,$where,$join){
// public function join_table($id){
$this->db->select($tag);
$this->db->from($table);
$this->db->join($join);
$this->db->where($where);
// $this->db->select('*');
// $this->db->from('users');
// // $this->db->group_by('invoice_number'); 
// $this->db->join('following','following.user_following = users.id');
// $this->db->where('following.user_id', $id);
$result = $this->db->get();
return $result->result();
}

评论部分正在工作,但我想让它成为一个动态。

问:如何制作连接表的动态方法?

希望这会对您有所帮助:

join tableon条件保留到两个不同的变量中,$where应该是一个具有键值对的数组,如下所示:

您的控制器应该是这样的:

$id = $this->session->user_id;
$where = array('following.user_id' => $id);
$join_table = 'following';
$join_on = 'following.user_following = users.id';
$fetch_following = $this->join_table('*','users',$where,$join_table,$join_on);

您的join_table方法应如下所示:

public function join_table($tag,$table,$where,$join_table,$join_on)
{
$this->db->select($tag);
$this->db->from($table);
$this->db->join($join_table,$join_on);
$this->db->where($where);  
$query = $this->db->get();
return $query->result();
}

获取更多 : https://www.codeigniter.com/user_guide/database/query_builder.html

相关内容

  • 没有找到相关文章

最新更新