CodeIgniter: die Weitergabe von Argumenten von View und Controller?

EDIT: Mit dem code unten nun, ich bin nicht sicher, wie drucken Sie die Lesezeichen und die tags richtig


Bin ich komplett neue CI und ich haben kürzlich auf einer Straße zu blockieren. Ich bin sehr unsicher, wie ich gehen würde, über die übergabe eines Funktions-Argumentes vom view-Datei an den controller, so konnte ich es verwenden, für eine Funktion?

Habe ich eine foreach-Schleife auf die Sicht werde durch die alle Elemente übergeben durch die Funktion get_latest_bookmarks. Die Funktion gibt eine ID für jedes Element, und ich bin zu wollen, verwenden Sie diese mit einer anderen Funktion aufgerufen get_bookmark_tags, die die tags der Lesezeichen aus einer anderen Tabelle. Ich habe den code habe ich getan so weit unten.

Modell:

<?php 

class Bookmark_model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function get_latest_bookmarks($limit) 
    {
        //Load Database
        $this->load->database();
        //Query Database 
        $query = $this->db->get('Bookmark', $limit);
        //Return Result
        return $query;
    }

    function get_bookmark_tags($id)
    {
        //Load Database
        $this->load->database();
        $query = $this->db->query('SELECT Tag.Title 
                                    FROM `Tag` 
                                    INNER JOIN BookmarkTag
                                    WHERE BookmarkTag.BookmarkID = "'.$id.'" AND Tag.TagID = BookmarkTag.TagID');
        return $query;
    }

Controller:

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

class Welcome extends CI_Controller {

    public function index()
    {
        //Load URL Helper
        $this->load->helper('url');
        //Load User Library
        $this->load->library('ion_auth');
        //Is User Logged In
        if ($this->ion_auth->logged_in())
        {
            $data['user'] = $this->ion_auth->get_user_array();
        }
        else
        {
            redirect('auth/login');
        }
        //Load Bookmark Model
        $this->load->model('Bookmark_model');

        //Create Arrays
        $bookmarks = array();
        $tags = array();

        //Query Database
        $query = $this->Bookmark_model->get_latest_bookmarks(4);
        //
        foreach ($query->result() as $row) {
             array_push($tags, $this->Bookmark_model->get_bookmark_tags($row->BookmarkID));
             array_push($bookmarks, $row);
        }
        $data['tags_latest'] = $tags;
        $data['bookmarks_latest'] = $bookmarks;
        $this->load->view('welcome_message', $data);
    }

}

Anzeigen:

<h1>Latest Bookmarks</h1>

<?php foreach ($bookmarks_latest as $bookmark): ?>

<?php print_r($bookmark); ?>

<?php print_r($tags_latest->result()); ?>

<?php endforeach; ?>
  • es kann ein Weg, dies zu tun, aber Daten fließen sollen von der Steuerung, um die Ansicht und nicht die andere Weise herum.
  • Könnte jemand die Antwort gewusst wie: übergeben Sie das argument aus view und controller zum Beispiel das schreiben im Hinblick auf das funktionieren nicht <?=form_open("Welcome/bookmark_tags($id)";?> wenn $id-argument ist ein array, dann wie wir wird übergeben
InformationsquelleAutor ritch | 2011-06-11
Schreibe einen Kommentar