3

コントローラからビューに変数を渡そうとしています。私はいくつかのコードを持っていますが、問題が何であるかを理解するために、私はそれを単純にしました。これが私のコントローラーです:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Welcome extends CI_Controller {

        $p=2;

        public function index()
        {
            $this->load->view('welcome_message',$p);
        }
    }

?>

変数pはビューで宣言されています。

<div id="container">
    <h1>Welcome to CodeIgniter!</h1>
    <?php echo $p?>
</div>

$ p値を表示しようとすると、次のエラーが発生しました。

エラー

Parse error: syntax error, unexpected '$p' (T_VARIABLE), expecting function (T_FUNCTION) in C:\wamp\www\..\application\controllers\welcome.php on line 20

どうしたの?

ありがとう。

4

2 に答える 2

3

まず、変数を配列として渡す必要があります(ドキュメントを確認してください)。

$data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );

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

$ pは関数の範囲外であると宣言されているため、次のいずれかです。

public function index() {
   $p = 2;
   $this->load->view('welcome_message',array('p' => $p));
}

また

class Welcome extends CI_Controller {

public $p=2;

public function index()
{
    $this->load->view('welcome_message',array('p' => $this->p));
}
}
于 2013-01-31T11:25:17.600 に答える
0

$pコントローラのコンストラクタで宣言する必要があります。

class Welcome extends CI_Controller {

    function __construct() {
    parent::__construct();
        $this->p = 2;
    }

    public function index()
    {
        $data['p'] = $this->p;
        $this->load->view('welcome_message',$data);
    }
}

?>

于 2013-01-31T11:24:53.560 に答える