2

codeigniter セットアップ内にログイン ヘルパーをセットアップしました。

codeigniter インスタンスを取得し、モデルを呼び出し、いくつかの変数を設定します。

$CI =& get_instance();

次に$CI->load->vars($data);、すべてのモデルとビューで変数を使用できるようにします。

変数の1つは次のとおりです$data->errors=array();

私のモデルにエラーがある場合、エラーを設定できるという考えです。if($query->num_rows()!='1'){$this->error[]="This message does not exist !";}

次に、コントローラーで、この変数が設定されているかどうか、およびエラーが表示されているかどうかを確認できます。

ただし、これはエラーをスローしています

メッセージ: オーバーロードされたプロパティ Mail_model::$error の間接的な変更は効果がありません

このエラーが頭をよぎります。私はエラーについていくつかの調査を行いましたが、適切な解決策を含むリーマン用語での説明を見つけることができません。

誰か助けてくれませんか?

4

1 に答える 1

1

=& を使用して、 $CI 変数をそれ自体への参照としてロードしました

$CI->load->vars() を使用したため、参照を介して変数をロードしました。

$data を $CI 参照にロードする必要はありません。

モデルとコントローラーの間でメッセージ (エラー メッセージなど) を渡したい場合、グローバル変数を使用するのはおそらく最善の方法ではありません。

CodeIgniter の最適なオプションはFlashdataです。これが、flashdata が存在する正確なシナリオです。CIユーザーガイドですべてを読むことができます。

于 2012-07-25T00:24:40.113 に答える