0

記事を読んだように、アプリケーションのすべてのコントローラーでユーザーを検証するための最良の方法は、CI_Controllerを拡張する独自のコントローラーを拡張することです。

しかし、私はそれを機能させることはできません。

私が持っているのはmembers_controller私のを拡張するものMY_Controllerです。

MY_Controller私はこのコードを持っていますが、これをどのように利用するかをテストするだけです。

<?php

class MY_Controller extends CI_Controller {

private $foo;

    function __construct() {
        parent::__construct();
        $this->foo = 'hello world again';
    }

}

私の中でmembers controller

<?php
class Members extends MY_Controller {
    function index() {
         $this->load->view('members');
    }
}

私の中でmembers view

設定したばかりのこの変数にアクセスしたいのですが、方法がわかりません。

echo $fooこのようにエコーしてみました$this->foo

しかし、どちらも機能しません。どうもありがとう!!

4

4 に答える 4

5

変数をビューファイルに渡す必要があります。

    <?php
    class Members extends MY_Controller {
        function index() {
             $data = array('foo' => $this->foo)
             $this->load->view('members', $data);
        }
    }

これで、ビュー内で$fooを参照できます。$this->fooを保護対象として宣言する必要がある場合があります。

MY_Controllerに関するビデオチュートリアルがあり、 http: //codeigniter.tv/a-10/Extending-the-core-MY_Controller-and-beyondで役立つ場合があります。

于 2012-10-13T13:45:30.523 に答える
0

変数を「メンバービュー」に渡してみましたか。

$this->load->view('members',$foo);
于 2012-10-13T07:52:19.690 に答える
0

$fooプライベートではなく、保護されたものにする必要があります。次に、次のようにMY_Controller.phpを拡張するコントローラーでアクセスできるようになります。 $this->foo

于 2014-10-22T22:51:53.483 に答える
0

今日初めてcodeigniter3を使用しました。過去にはバージョン2.xaを何度も使用していました。今、私は拡張できませんCI_Controller

application / core / MY_Controller.php

class MY_Controller extends CI_Controller {

private $data = array();

function __construct() {
    parent::__construct();
    date_default_timezone_set("Europe/Zagreb");
    $this->data['foo'] = "bar";
}

application / controllers / Welcome.php

class Welcome extends MY_Controller {

public function index() {
    $this->data['main_content'] = 'home';
    $this->load->view('template/template', $this->data); 
}

application / view / home.php (これはによってロードされたビューです$this->data['main_content']

で宣言されたデータをエコーし​​ようとするとMY_Controller、エラーが発生します。

    <?php echo $foo; ?>

A PHP ERROR WAS ENCOUNTERED

Severity: Notice

Message: Undefined variable: foo

Filename: template/header.php
于 2015-11-24T19:14:41.600 に答える