-1
我有以下情况:如果用户发布了消息,则其他用户可以批准该消息,但不能授予作者,该作者只能编辑或删除它。检查用户是否提交了批准
下面的if语句应该可以工作,但它不起作用。
<td>
<?php $author = array(
$message->user_id == $this->session->userdata('id')
); ?>
<?php if($author): ?>
<?php echo anchor('admin/messages/edit/'.$message->id.'', 'Edit', 'class="btn btn-primary"'); ?>
<?php echo anchor('admin/messages/delete/'.$message->id.'', 'Delete', 'class="btn btn-danger"'); ?>
<?php endif; ?>
<?php if(!$author): ?>
<?php echo anchor('admin/messages/approve/'.$message->id.'', 'Approve', 'class="btn btn-success"'); ?>
<?php endif; ?>
</td>
下面的代码是批准在我的控制器方法,应该将数据传递到模型
public function approve($id)
{
$this->db->select('*');
$this->db->from('approval');
$this->db->join('messages', 'messages.id = approval.sms_id');
$query = $this->db->get();
$first_approval = $query->row('first_approval');
$second_approval = $query->row('second_approval');
$third_approval = $query->row('third_approval');
if ($first_approval == null) {
$data = array(
'first_approval' => $this->session->userdata('user_id')
);
$approval_data = array(
'approvals' => 'one'
);
$this->Message_model->some_approve($id, $approval_data);
$this->Message_model->approve($id, $data);
//Activity array
$data = array(
'resource_id' => '',
'type' => 'message',
'action' => 'approved',
'user_id' => $this->session->userdata('user_id'),
'message' => 'Message was approved'
);
//Insert Activity
$this->Activity_model->add($data);
//isset Message
$this->session->set_flashdata('success', 'Your approval was send');
//Redirect
redirect('admin/messages');
} elseif ($second_approval == null && $this->session->userdata('user_id') != $first_approval) {
$data = array(
'second_approval' => $this->session->userdata('user_id')
);
$approval_data = array(
'approvals' => 'two'
);
$this->Message_model->some_approve($id, $approval_data);
$this->Message_model->approve($id, $data);
//Activity array
$data = array(
'resource_id' => '',
'type' => 'message',
'action' => 'approved',
'user_id' => $this->session->userdata('user_id'),
'message' => 'Message was approved'
);
//Insert Activity
$this->Activity_model->add($data);
//isset Message
$this->session->set_flashdata('success', 'Your approval was send');
//Redirect
redirect('admin/messages');
} elseif ($third_approval == null && $this->session->userdata('user_id') != $second_approval && $this->session->userdata('user_id') != $first_approval) {
$data = array(
'third_approval' => $this->session->userdata('user_id')
);
$approval_data = array(
'status' => 'Approved',
'approvals' => 'three'
);
$this->Message_model->approve($id, $data);
$this->Message_model->some_approve($id, $approval_data);
//Activity array
$data = array(
'resource_id' => '',
'type' => 'message',
'action' => 'approved',
'user_id' => $this->session->userdata('user_id'),
'message' => 'Message was approved'
);
//Insert Activity
$this->Activity_model->add($data);
//isset Message
$this->session->set_flashdata('success', 'Your approval was send and the message has passed');
//Redirect
redirect('admin/messages');
} elseif ($third_approval == $this->session->userdata('user_id') || $this->session->userdata('user_id') == $second_approval || $this->session->userdata('user_id') == $first_approval) {
//isset Message
$this->session->set_flashdata('success', 'You already have send an approval');
//Redirect
redirect('admin/messages');
} else {
$approval_data = array(
'status' => 'Approved',
'approvals' => 'three'
);
$this->Message_model->some_approve($id, $approval_data);
//isset Message
$this->session->set_flashdata('success', 'Your approval was send and the message has already been send');
//Redirect
redirect('admin/messages');
}
}
下面的方法之前检查条件正在
public function approve($id, $data) {
$this->db->where('sms_id', $id);
$this->db->update('approval',$data);
}
public function some_approve($id, $approval_data)
{
$this->db->where('id', $id);
$this->db->update('messages',$approval_data);
}
如果我的控制器和按钮的条件是那些h I类需要帮助的,因为没有显示任何错误,但他们没有工作,他们应该
对你的问题有几点想法:你有很多代码,我真的停止在<?php if($ author):?>'上。你可能应该告诉我们当你写这个时你在想什么,因为你为什么要在'$ author'上存储一个数组。它不应该是一个布尔,就像'$ author = $ message-> user_id == $ this-> session-> userdata('id')'?这将有助于你的ifs,但不是一个数组... –