返回 result() 失败时爆炸

exploding when returned to result() failed

这里我正在使用函数 explode 函数从 datable 中分解数据,只有当 row() 给定返回到 result() 时,explode 才起作用。 这是我的 table

id  name                       tools_names                                quantity  

9   T20            T20A,T20B,T20C,T20D,T20E,T20F,T20G,T20H,T20I,T20J        10  
10  krone tool     krone toolA,krone toolB,krone toolC,krone toolD,kr...     5 

这是我的控件

    $data['tools']=$this->Tools_model->view_available_tools();
    $data['toolss'] = explode(',',$data['tools']->tools_names);
    $data['toolss'] = array_values($data['toolss']);
    //return $data['toolss'];
    var_dump($data['toolss']);

这是我的模型

public function view_available_tools()
{
    $this->db->order_by('id','desc');
    $query=$this->db->get('tools');
    return $query->result();
}

当我返回第一行时,tools_names 值即将到来,但我想获取所有行的所有 tools_names。这不来了请帮我解决这个问题。

我的观点是这样的

<div class="form-group">
        <label for="tools" class="control-label">Tools:</label>
        <select name="tools[]" class="form-control" multiple="multiple" required>
        <option value="">please select</option>
        <?php foreach($toolss as $row){?>

        <option value="<?php echo $row;?>"><?php echo $row;?></option>
        <?php }?>
        </select>
      </div>

您必须使用 return $query->result_array(); 或等效的

public function view_available_tools()
{
    $this->db->order_by('id','desc');
    $this->db->where('status',1);
    $query=$this->db->get('tools');
    return $query->result_array(); 
}

编辑:

请也更新您的控制器

$data['tools']=$this->Tools_model->view_available_tools();
foreach ($data['tools'] as $key=>$val) {
    $data['toolss'][] = explode(',',$val['tools_names']);
}
$data['toolss'] = array_values($data['toolss']);  
var_dump($data['toolss']);

编辑2:

查看更新,

<div class="form-group">
        <label for="tools" class="control-label">Tools:</label>
        <select name="tools[]" class="form-control" multiple="multiple" required>
        <option value="">please select</option>
        <?php foreach($toolss as $key=>$val){
               foreach ($val as $key2=>$val2){
        ?>

        <option value="<?php echo $val2;?>"><?php echo $val2;?></option>
        <?php 
           }
         } ?>
        </select>
      </div>

试试下面的代码::-

<?php
foreach ($data['tools']->tools_names as $tools_key => $tools_val) {
    $data['toolss'][] = explode(',', $tools_val);
}
$data['toolss'] = call_user_func_array('array_merge', array_values($data['toolss']));
var_dump($data['toolss']);
?>