2014-05-14 59 views
0

這個簡單的功能讓我發瘋 - 我試圖從數據庫中拉出一行,並將其作爲信息數組傳遞給我的控制器,並傳遞給我的視圖 - 在傳遞此視圖以查看我需要獲取的視圖slug字段並重定向到domain/quotes/this-is-test以顯示正確的信息,但我甚至無法進行基本查詢。你能幫我解決我缺乏的知識!模型陣列Codeigniter錯誤

型號

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Quotes_model extends CI_Model{ 

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

    function get_records(){ 
    $data = array(); 
    $query = $this->db->select('*') 
      ->from('quotes'); 

return $query->result(); 
} 
} 

控制器

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

class Welcome extends CI_Controller { 


    public function index() 
    { 
     $this->load->helper('url'); 
     $this->load->model('quotes_model'); 
     $data['quote']= $this->quotes_model->get_records(); 
     $this->load->view('welcome_message', array('data' => $data)); 

    } 
} 

,我已經在我看來,這樣做:

查看

<?php die(var_dump($data)); ?> 

錯誤

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: data 

Filename: models/quotes_model.php 

Line Number: 16 

array(1) { ["quote"]=> NULL } 
+0

你忘了得到的模型查詢結果數據爲'data'變量現在 – TheMohanAhuja

回答

0

嘗試

$data['quote']= $this->quotes_model->get_records(); 
$this->load->view('welcome_message', $data); 

,並從模型返回你的結果: -

return $query->result(); 

return $query; 
+0

這樣做,我得到空 – user3482036

+0

則需要檢查你的查詢 –

+0

這是我的查詢,但現在還是一樣的功能get_records(){$ 數據=陣列(); $查詢= $這個 - > DB->選擇( '*') - >從( '引號') 回報$查詢 - >結果(); } – user3482036

0

試試這個

function get_records(){ 
$data = $this->db->select('*') 
     ->from('quotes') 
     ->join('authors', 'authors.id = quotes.author_id') 
     ->join('genre', 'genre.id = quotes.id') 
     ->order_by('id', 'RANDOM') 
     ->limit(1)->row_array(); 
///$data = array(); 
return $data; 


} 

嘗試 - > row_array()如果​​你想獲取一行。如果你想獲取所有記錄,請嘗試result_array()。這會給你的輸出數組中的...

+0

嘗試請,其更新..你沒有任何結果分配給數據和你正在返回它.. –

0

您需要先通過您的結果result_array()

更正代碼:

function get_records(){ 
    $data = array(); 
    $query = $this->db->select('*') 
         ->from('quotes') 
         ->join('authors', 'authors.id = quotes.author_id') 
         ->join('genre', 'genre.id = quotes.id') 
         ->order_by('id', 'RANDOM') 
         ->limit(1); 
    ///$data = array(); 
    if ($query->num_rows()) { 
     foreach ($query->result_array() as $row) { 
      $data[] = $row; 
     } 
    } 
    return $data; 
} 
+0

我的控制器如何?我改變了我的代碼給你,我得到一個沒有源代碼的空白頁面 – user3482036

+0

嗨,我的代碼沒有錯誤。請檢查codeigniter用戶指南。 – Pupil

0

模型有錯誤,您正在返回$data,這是沒有定義! 加簡單:

return $query->result(); 

也改變你的控制器:

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

,然後你會得到你的觀點是這樣的數據:

foreach ($quote as $row){ 
    $id=$row->author_id; 
    echo $id; 
} 
+0

香港專業教育學院改成了這一點,但我認爲這是一個錯誤的地方作爲它沒有顯示 – user3482036

+0

檢查更新的答案 – Vickel

+0

所做的這一切主頁上的任何結果,仍然是一個空白頁 - 沒有錯誤,但犯規說明了什麼 – user3482036

0

您在功能

犯了一個錯誤
function get_records(){ 
$query = $this->db->select('*') 
     ->from('quotes') 
     ->join('authors', 'authors.id = quotes.author_id') 
     ->join('genre', 'genre.id = quotes.id') 
     ->order_by('id', 'RANDOM') 
     ->limit(1); 
///$data = array(); 
return $data; 

}

返回$的數據;這應該是返回

$query->result();