2014-12-23 2 views
0

Следуйте за ошибкой, которую я получаю, когда пытаюсь выполнить strtolower() мой проверил в codeigniter. это ошибка:ошибка strtolower функция в codeigniter

strtolower() expects parameter 1 to be string, object given 

и

Undefined property: CI_Loader::$unit_id 

это мой взгляд

<div class="checkbox"> 
             <?php foreach ($unit_list as $unit) :?> 
             <?php $isChecked = (strtolower($unit->unit_id) == strtolower($unit_id)) ? true : false; ?> 
               <label> 
                <input type="checkbox" checked='$isChecked' name="unit_id[]" value="<?php echo $unit->unit_id ?>"><?php echo $unit->unit_id ?> 
               </label>"" 
             <?php endforeach?> 

            </div> 

этот контроллер

$this->data['unit_list']= $this->munit_list->get_all_unit_list2();  

    $fleet = $this->input->post('id_fleet'); 
       $unit_id = $this->input->post('unit_id'); 
       $this->data['unit_id']= $unit_id; 

       // get shift and date 
       $q = $this->database_three->select("*")->from('fleet')->where('id_fleet', $fleet)->limit(1)->get()->row(); 
       $fleet_date = $q->date; 
       $fleet_shift = $q->shift; 

       //$this->db->select('f.*, fm.*')->from('fleet_member as fm, fleet as f'); 
         $custom_sql = "fm.id_fleet = f.id_fleet AND f.date = '$fleet_date' AND f.shift = '$fleet_shift'"; 
         $custom_where = ""; 
       $records = array(); 

       for ($i=0; $i < count($unit_id) ; $i++) { 
        $records[] = array(
             'id_fleet' => $fleet, 
             'unit_id' => $unit_id[$i] 
        ); 

модель

function get_all_unit_list2() 
    { 
     $this->database_two->order_by('unit_id','desc'); 
     $data = $this->database_two->query(
      "Select unit_list.unit_id, vehicle_group.vec_type, vehicle_group.vec_group 
      from unit_list, vehicle_group 
      where unit_list.vec_type = vehicle_group.vec_type 
      AND vec_group IN ('OHT','ADT') "); 
     return $data->result(); 
    } 

Вы можете помочь мне решить эту проблему?

+0

Какая функция get_all_unit_list2 возвращает строку или объект? – vijaykumar

+0

'$ this-> unit_id' не является чем-либо, что будет передано вашему контроллеру. Задайте идентификатор устройства в своем контроллере, выполнив '$ this-> data ['unit_id'] = $ unit_id;' вместо '$ this-> unit_id = $ unit_id;' и назвав его в вашем представлении следующим образом: ' $ isChecked = (strtolower ($ unit-> unit_id) == strtolower ($ unit_id))? true: false; ' – RhapX

+0

@ vijay4vijju array (46) {[0] => object (stdClass) # 26 – point

ответ

0

я могу увидеть ваш код не проходящее $ unit_id, чтобы посмотреть, так у меня Undefined свойство:

CI_Loader::$unit_id and secondly 

в вашем unit_list arrary убедитесь, что вы получаете данные в

result() not in resul_array() 

Я имею в виду у вас контроллер, когда вы звоните

get_all_unit_list2() 

затем вернуться должен быть объект или массив в виде результата()

, например

$this->data['unit_list']= $this->munit_list->get_all_unit_list2();  

сейчас в вашей модели

function get_all_unit_list2() 

вы должны иметь запрос и возврат мне понравятся

$query= $this->db->get('tablename'); 

return $query->result(); 

теперь в вашем окне вы можете использовать, $ unit_list-> unit_id если есть результат в переменной

$this->data['unit_list'] 

надеюсь, это станет ясно.

+0

в моей модели уже использует return $ query-> result(); вы можете видеть выше – point

+0

, но все же ошибка – point

+0

error is Сообщение: Неопределенная переменная: unit_id – point

0

первую очередь, на ваш взгляд вы следующее сообщение об ошибке

<label> 
<input type="checkbox" **checked='$isChecked'** name="unit_id[]" value="<?php echo $unit->unit_id ?>"><?php echo $unit->unit_id ?> 

</label> 

вторых вы пройти тот же $ unit_it от контроллера в двух переменных $ записи [] и $ данных [ «unit_id»] теперь я не уверен, которое вы передаете, если его $ запись [], чем массив и в вашем состоянии

<?php $isChecked = (strtolower($unit->unit_id) == strtolower(**$unit_id**)) ? true : false; ?> 

вы используете строку, так вот почему вы получаете массив ci_loader его ожидает строка преобразовать в strtolower но вам проходят объект или массив

попытайтесь решить эту проблему после этого, вы поймете, потому что я не вижу ваш полный код, какие переменные вы просматриваете для просмотра.

С уважением

Имран Касим

+0

Ошибка анализа: синтаксическая ошибка, неожиданные '*', ожидающие ')' – point

+0

не используют * они предназначены только для справки, я просто подсвечил их так удалите их в свой код –

+0

, так как я должен это делать? – point

Смежные вопросы