-1

テーブルからデータを削除するために、プロジェクトに単純な削除関数を作成しようとしています。なぜ機能しないのかわかりません。私はこれを手伝うためにcodeigniterユーザーガイドを使用しました。エラーが発生しましたが、理由がわかりません。これが私のコントローラー、モデル、削除用のビューです:

PHPエラーが発生しました

重大度:通知

メッセージ:未定義のプロパティ:stdClass :: $ id

モデル

function delete()
{
    $this->load->database();
    $tables = array('info', 'info2');
    $this->db->where('id', 1);
    $this->db->delete($tables);

}

コントローラ

 function del($tables){


if((int)$tables > 0){
          $this->info_model->delete($tables);
}

$data = $this->info_model->delete();
$data['query'] = $this->result_model->delete();

$this->load->view('info_view',$data);    
 }

見る

//this line gives me the error

 <td><?php echo anchor('info_controller/del' . $row->id,'Delete')?> </td>

編集

私はこれを作るためにこのチュートリアルを使用しました

http://www.phpeveryday.com/articles/CodeIgniter-Form-Centralizing-$data-P291.html
4

2 に答える 2

2

コントローラーでモデルを次のようにロードします

$this->load->model('deletion_model');

次に、deletion_model のメソッドを呼び出します

$this->deletion_model->delete($id);

必ずモデルをロードしてください。

その後、id の値を文字列として渡すことをお勧めします。

$this->db->where('id', '1');

また

静的な値を使用していない場合は、この関数に指定された変数を使用してください

$this->db->where('id', $id);

ガイドをよく読んでください

http://ellislab.com/codeigniter/user-guide/database/active_record.html#delete

を使用して、削除するレコードの ID を取得することもできます。

$id=$this->uri->segment(3); // depending on which segment the id is
于 2013-03-12T10:39:39.577 に答える
-1
  1. $rowビューで使用していますが、コントローラーにオブジェクトが表示されません。$row->id
  2. あなたのモデルは何も返していません。
  3. 指定した行を削除する$object->idと、存在しなくなります。
  4. ビューのリンクには、削除リンクを表示したいことが示されていますが、実際の削除アクションを処理するコントローラーでそのビューを使用します。

編集:クエリ結果をビューで反復しようとするため$data['query']、コントローラーから select ステートメントを指す必要があります。

于 2013-03-12T10:36:48.237 に答える