如果有一些依赖性,将记录添加到codeigniter中的列

时间:2017-03-21 11:22:41

标签: php mysql codeigniter

我有一个帖子,用户可以发送到另一个个人资料'在网站上,但在发布之前,它将被添加到其他随机用户的其他个人资料中。他必须批准这个帖子。 '随机用户'只有在他们已经遵循此“其他个人资料”的情况下,我们才会收到此提交以供审批。所以,我的问题是:

  

如何检查'随机用户'跟随其他一些个人资料'获得批准的新请求?

我试过这个:

another_profile跟随表(profile_follows):

profile_id | who_follow_id   
21           5

发布该用户提交审批(posts_for_approve):

for_whom_id | submit_text | submit_author_id | post_id
21            some text     5                  2

用户表(用户):

user_id
5

和包含可以批准的用户的表(users_can_approve):

post_id | user_id
2         5

在我的posts_model中我获得了所有用户:

function get_all_users()
{
    $this->db->select('user_id');
    $this->db->order_by('rand()');
    $query = $this->db->get('users');
    return $query->result_array();
}

在我的控制器中,我将收到所有将收到批准帖子的用户:

$all_users = $this->stories_model->get_all_users();
 foreach ($all_users as $key) {
  $send_approve['post_id'] = $edit;
  $send_approve['user_id'] = '';
  $this->db->insert('contribute_moderators', $send_approve);
 }  

这样可行,但在我的代码中,所有网站用户都会收到批准帖子,但我需要检查用户是否有' profile_id',才能收到此帖子以供审批。谢谢!

1 个答案:

答案 0 :(得分:1)

当然,你的get_all_users()函数会获得你不想要的所有用户。你没有回答我对评论的第一个问题,但是我没有回答。非常确定你真的不想要用户表中的结果,你需要来自profile_follows表的user_id。我将其重命名为get_all_followers()并执行以下操作:

//Note I'm passing the $profile_id to this function, which I assume you have access to
function get_all_followers($profile_id)
{
    $this->db->select('user_id');
    $this->db->order_by('rand()');
    $this->db->where('profile_id' = $profile_id);
    $query = $this->db->get('profile_follows');
    return $query->result_array;
}

控制器:

$all_followers = $this->stories_model->get_all_followers($profile_id);
foreach ($all_users as $key) {
  $send_approve['post_id'] = $edit;
  $send_approve['user_id'] = $key;  //your answer isn't clear to me, but I think this is where you need your follower user_id
  $this->db->insert('contribute_moderators', $send_approve);
}