CodeIgniter get_where

2 Cevap php

Ben sahibi kullanıcı oturum açmış eşit olduğu tüm veritabanı kayıtlarının bir listesini kapmak için get_where kullanmak çalışılıyor.

Bu benim denetleyicisi benim fonksiyondur;

function files()
{
    $owner = $this->auth->get_user();

    $this->db->get_where('files', array('owner =' => '$owner'))->result();
}

Ve benim görüşüme göre ben şu var;

<?php foreach($query->result() as $row): ?>

    <span><?=$row->name?></span>

<?php endforeach; ?>

Ben görünümü erişirken çalıştığımda, Ölümcül hata alıyorum: in / hat 1 views / hesap / files.php olmayan bir nesne üzerinde bir üye işlev sonucu () arayın.

Herkes bu ile ne olabilir herhangi bir fikir vardı merak ettiniz mi?

Teşekkürler

2 Cevap

CodeIgniter MVC ilkelere dayalı bir çerçevedir. Sonuç olarak, genellikle ayrı uygulama mantığı, veri soyutlama ve CodeIgniter kendi alanlarına "çıktı" kullanırsınız. Bu durumda: denetleyicileri, modelleri ve görünümleri.

Sadece başvuru için, genellikle bu durumda get_where işlevselliği de, bir model işlevi olarak "veri" kodu olmalıdır. Ben çok CodeIgniter ile vâkıf, çoğu adımlarda elini tutmak gerekir sağlanan User Guide okumanızı öneririz. Bkz: İçindekiler'i (sağ üst).

TL;DR

Sorunu çözmek için size görünümüne aracılığıyla kontrolör değişkenler geçmek emin olmanız gerekir:

function files()
{
    $owner = $this->auth->get_user();

    $data['files'] = $this->db->get_where('files', array('owner =' => '$owner'))->result();

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

Ve sonra görünümünde doğru değişken kullandığınızdan emin olun:

<?php foreach($files as $row): ?>

    <span><?=$row['name']; ?></span>

<?php endforeach; ?>
<?php foreach($query->result() as $row): ?>

    <span><?=$row->name?></span>

<?php endforeach; ?>

Gibi pek sonuç işlev kaldırmak.

<?php foreach($query as $row): ?>

    <span><?=$row->name?></span>

<?php endforeach; ?>

Btw. Bu onu iade önce bir sonuç için sorguyu test etmek için çok daha iyi bir fikir.

function files()
{
    $owner = $this->auth->get_user();

    $query = $this->db->get_where('files', array('owner =' => '$owner'))->result();

    if ($query->num_rows() > 0)
    {
        return $query->result();
    }
    return FALSE;
}