2

私はコードイグナイターが初めてです。ビデオチュートリアルに従い、ログイン登録システムを作成しました。登録またはログイン後、ユーザーは members.php というページにアクセスします。

members.php はビューです。

私のコントローラーはmain.phpで、モデルはmodel-users.phpです。

ユーザーがログインまたは登録後にコンテンツを読み取れるように、members.php にデータベースのコンテンツを表示/保持させたいですか?

私は、ビューからコントローラーを呼び出さないと言った Web 上のいくつかのリソースに従いました。そうせずにどうすれば上記を達成できますか?

ありがとう

4

5 に答える 5

10

CodeIgniter のドキュメントは実際には非常に明確で、非常に理解しやすいと思います。それでも、アプリをどのように構成するかの例を次に示します。

コントローラー

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

class Members extends CI_Controller {
    function __construct() {
        parent::__construct();

        $this->load->model('members_model');
    }

    function index() {
        $data['members'] = $this->members_model->get_members();

        $this->load->view('header', $data);
        $this->load->view('members');
        $this->load->view('footer');
    }
}

モデル:

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

class Members_model extends CI_Model {

    function get_members() {
        $query = $this->db->get('members');
        return $query->result_array();
    }
}

ビュー:

<?php

print_r($members);

上記のページにアクセスするには、http://yoursite.com/index.php/membersにアクセスします。

ファイルを使用して、URI からセグメント.htaccessを削除できます。コントローラーを実行すると、メソッドが自動的に呼び出されますindex.phpindex()

于 2013-02-20T15:18:14.763 に答える
1

コードの例はありませんが、メンバーの名前と名前を表示できるHTMLの簡単な例を1つ作成します。コントローラ:

function members(){
  $members = $this->model-user->get_list(); //array of members
  $this->load->view('members.php', $members); // load members in view
}

members.phpを表示

<html>
<body>
    <table>
      <tr>
        <th>Name</th>
        <th>Surname</th>
      </tr>
      <?php foreach($members as $m): ?>
      <tr>
        <tr><?php echo $m['name']; ?>
        <tr><?php echo $m['surname']; ?>
      </tr>
      <?php endforeach; ?>
    <table>
</body>
</html>

モデル:

function get_list() {
   // query in database
   return $query = $this->db->get('members'); //table name members
}

これは短い形式の簡単な例です。ご理解いただければ幸いです。

于 2013-02-20T15:14:53.027 に答える
1

私はあなたが何を意味するか知っていると思います.これは間違いなく正しい方法ではありませんが、本当に必要な場合は、このようなビューからモデルを呼び出すことができます.
ビューで

<div>

    <?php 
    #You could load the model here or autoload it in config->autoload->models(i believe)
    $data = $this->model_name->model_function();?>
    foreach($data as $row): 
           echo '<pre>';
           print_r($row);
           echo '</pre>';
    endforeach; 
    ?>

</div>
于 2013-02-20T22:27:18.627 に答える
0

ここに私のコードの例があります:

ビュー:

                <?php foreach($ecms as $i){ ?>
                    <tr>
                    <td><?php echo $i->accnum; ?></td>
                    <td><?php echo $i->crdnum; ?></td>
                    <td><?php echo $i->fname; ?></td>
                    <td><?php echo $i->bday; ?></td>
                </tr>
            <?php } ?>

モデル:

function masterHide()

{
    $sql =" select * from ecms";
    $query = $this->db->query($sql);
    return($query->num_rows() > 0) ? $query->result(): NULL;
}

コントローラ:

    function search() {

//  $this->MasterListAccess();
    $this->load->model('navi_model');
    $query = $this->navi_model->masterHide();
    //check results or returned value of model
    //print_r($query);
    $data['ecms'] = $query;
    $data['main_content'] = 'search';
    $this->load->view('includes/template',$data);
}
于 2015-12-16T09:14:15.973 に答える