2017-07-18 23 views
0

モデルコントローラからmake_idを呼び出そうとしていますが、不正な文字列を取得するたびに、私が間違っていることを助けてください。foreach returns警告:不正な文字列オフセット 'model_id'

モデルからコード:コントローラから

public function getTotalModelsByMark($mark_id) { 
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "models WHERE mark_id = '" . (int)$mark_id . "'"); 

    return $query->row; 
} 

コード:ビューから

$this->load->model('catalog/models'); 
$data['models'] = array(); 
$results = $this->model_catalog_models->getTotalModelsByMark($mark_info['mark_id']); 
foreach ($results as $result) { 
    $data['models'][] = array(
     'model_id' => $result['model_id'], 
     'name'   => $result['name'], 
     'mark_id'   => $result['mark_id'], 
     'status'   => $result['status'], 
     'category'   => $result['category'], 
     'edit'   => $this->url->link('catalog/models/edit', 'token=' . $this->session->data['token'] . '&model_id=' . $result['model_id'] . $url, true) 
     ); 
     } 

コード:

 <?php if ($models) { ?> 
     <?php foreach ($models as $model) { ?> 
     <tr> 
      <td class="text-center"><?php if (in_array($model['model_id'], $selected)) { ?> 
      <input type="checkbox" name="selected[]" value="<?php echo $model['model_id']; ?>" checked="checked" /> 
      <?php } else { ?> 
      <input type="checkbox" name="selected[]" value="<?php echo $model['model_id']; ?>" /> 
      <?php } ?></td> 
      <td class="text-left"><?php echo $model['name']; ?></td> 
      <td class="text-left"><?php echo $model['mark_id']; ?></td> 
      <td class="text-right"><?php echo $model['status']; ?></td> 
      <td class="text-right"><?php echo $model['category']; ?></td> 
      <td class="text-right"><a href="<?php echo $model['edit']; ?>" data-toggle="tooltip" title="<?php echo $button_edit; ?>" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td> 
     </tr> 
     <?php } ?> 
     <?php } else { ?> 
     <tr> 
      <td class="text-center" colspan="4"><?php echo $text_no_results; ?></td> 
     </tr> 
     <?php } ?> 

結果を持っていない場合は、私はノーと$ text_no_resultsを取得エラーが発生しましたが、表示するレコードがある場合、不正な文字列オフセット 'model_id''name' '' mark_id '' status ''カテゴリが表示される今朝、この修正をしようとしていますが、私はできません、これはオープンカートです。

public function getTotalModelsByMark($mark_id) { 
    $sql = "SELECT * FROM ". DB_PREFIX."models WHERE mark_id={$mark_id}"; 
    return $this->db->query($sql)->rows(); 
} 

をそして、これを置き換えます:

+0

あなたのテーブルの名前は何ですか? – Rashid

+0

db_models私はすべてのモデルを取得しようとすると、 – rpV

+0

のために、私はmodel_id、mark_id、名前、ステータス、カテゴリ、画像と私は違法な文字列のエラーを取得し、うまく動作しますが、私は特定のmark_id 、私は不正な文字列エラーを受け取ります – rpV

答えて

1

これを試してみてください

if ($models) 

へ:

if (count($models)>0) 
+0

致命的なエラー:未定義のメソッドを呼び出すDB :: select()、私はopencart 2.3.0を使用しています – rpV

+0

今私は関数を変更しましたgetTotalModelsByMark()、plzもう一度やり直してください。 – Rashid

+0

あなたの助けにラシッドありがとう、それはこのようにも動作しませんが、私はそれを動作させた、問題は行にあった:return $ query-> row; 'return $ query-> rows;ありがとうございました – rpV

関連する問題