Как отправить значение, если входное значение не пусто в пакете ввода CodeIgniter - PullRequest
0 голосов
/ 12 сентября 2018

В основном у меня есть это, которое отправляет значение, введенное в базу данных:

    $tag = $this->input->post('tags[]');

    $data = array();

    foreach ($tag as $term){
        $data[] = array(
            'post_id'  => $post_id,
            'term_id'  => $term,
            'user_id'  => $this->input->post('user_id'),
            'status'  => 'attached',
            'type'     =>  'tag',
        );

    }

    $this->db->insert_batch('ci_relationship', $data);

но я пытаюсь сделать user_id "необязательным", заставляя администратора ввести X-пользователя в качестве значения или его сеанс user_id, если он решит оставить его пустым.

Я пытался сделать это, но все равно не получилось:

    $tag = $this->input->post('tags[]');

    $data = array();

    foreach ($tag as $term){
        $data[] = array(
            'post_id'  => $post_id,
            'term_id'  => $term,
            //'user_id'  => $this->input->post('user_id'),
            'status'  => 'attached',
            'type'     =>  'tag',
        );

    }

    $user_id = $this->input->post('user_id');

    if(empty($user_id)){
        $data['user_id'] = $this->session->userdata('user_id');
    } else {
        $data['user_id'] = $user_id;
    }

    $this->db->insert_batch('ci_relationship', $data);

Как вы видите, я прокомментировал user_id в foreach, а затем добавил его в следующий блок кода, который должен проверять, является ли импут пустым.

Заранее спасибо!.

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

я думаю, что нет необходимости добавлять больше строк, просто сделайте это на стороне

$data[] = array(
        'post_id'  => $post_id,
        'term_id'  => $term,
        'user_id'  => (!empty($this->input->post('user_id')) ? $this->input->post('user_id') : '',
        'status'  => 'attached',
        'type'     =>  'tag',
    );
0 голосов
/ 13 сентября 2018
$tag = $this->input->post('tags[]');

$data = array();

foreach ($tag as $key => $term){
if(empty($this->input->post('user_id')))
{
$data[$key] = array(
        'post_id'  => $post_id,
        'term_id'  => $term,
        'status'  => 'attached',
        'type'     =>  'tag',
    );

}
else
{
$data[$key] = array(
        'post_id'  => $post_id,
        'term_id'  => $term,
        'user_id'  => $this->input->post('user_id'),
        'status'  => 'attached',
        'type'     =>  'tag',
    );

}
}

$this->db->insert_batch('ci_relationship', $data);

Надеюсь, у вас это получится.

0 голосов
/ 13 сентября 2018

Это если утверждение должно быть внутри этого foreach.

$tag = $this->input->post('tags[]');
$user_id = $this->input->post('user_id');

$data = array();

foreach ($tag as $key => $term){
    $data[$key] = array(
        'post_id'  => $post_id,
        'term_id'  => $term,
        'status'  => 'attached',
        'type'     =>  'tag',
    );

    if(empty($user_id)){
        $data[$key]['user_id'] = $this->session->userdata('user_id');
    } else {
        $data[$key]['user_id'] = $user_id;
    }
}

$this->db->insert_batch('ci_relationship', $data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...