CIモデルの特定のインスタンスのプロパティに関する質問があります。例:CodeIgniterモデルとプロパティ
project_modelというモデルがあります。
これはそれと呼ばれる$total_projects = $this->project_model->Get_Projects($options);
はそうのようなモデルでプロパティを作成します:モデルでは、それは、メソッドのcalleのGet_Projectsを持って
$query = $this->db->get('projects');//query
$this->num_rows = $query->num_rows();
return $query->result();
メソッドが呼び出されているので、後
とコントローラで
、私はNUM_ROWSにアクセスする必要があります。$num_rows = $total_projects->num_rows;
(私はあなたのいくつかは、コントローラにnum個の行を使用しての背後にある理由を質問することができる知っているそれは、改ページを設定することで行うことだ、それを行うためのより良い方法があるかもしれませんが、目。 。EREは、この特定のプロジェクトには時間がありません)
私の問題は、これが構文エラーを作成することです:
Severity: Notice
Message: Trying to get property of non-object
Filename: controllers/projects.php
Line Number: 110 ($num_rows = $total_projects->num_rows;)
まず理由ですか?私はこれを使うことを考えていました:代わりに$ this-> project_model :: num_rows?しかし、num_rowsは$ total_rowsオブジェクトに固有のものではありませんか?だから、それはちょうどモデル全体のためになるでしょう。
BTW:モデルのCIガイドを読みましたが、モデルのインスタンスを作成するための情報はまったくありませんでした。
EDITED:オブジェクト固有のnum_rowsプロパティの結果が必要です。たとえば、次のようになります。
$a=$this->project_model->Get_Projects($options);
$b=$this->project_model->Get_Projects($options);
$num_rows = $this->project_model->num_rows;
最後の行には、$ b num_rowsの結果が得られますが、$ aではありません。だから私はそれをオブジェクト固有のものにすることができるようにそれをどのように呼びますか? (明らかに私は変数の2番目の呼び出しの前にそれを格納することができます)
私は実際には、クラスプロパティがCIに単一の値しか格納しないので、これを間違った方法で行っていると思います。私はresult()でnum_rowsを返す必要があると思います。だから今私はそのコードで遊んでいます。現在、私はこれを持っています:$ query = $ this-> db-> get( "projects"); $ result-> result = $ query-> result(); $ result-> num_rows = $ query-> num_rows(); (これは改行なしのコメントでは難しいです)基本的には、結果のプロパティとnum_rowsのプロパティを作成しています。しかし、それを使用する前に$ resultを宣言するにはどうすればよいですか? varを使う必要がありますか?現時点では混乱しています。 – Adamantus
また、コントローラ側でlist()を使用して結果とnum行を別々に取得し、変数を作成することもできます。 – Adamantus
私は自分の問題を解決しました。私は明日の解決策を掲載する予定です。私は100 Expや何かを持っていないので許可されていません。 – Adamantus