2015-12-23 3 views
0

У меня возникают проблемы при попытке получить данные БД slug в URL.Codeigniter DB с slug

public function news($slug = "") 
    { 
     $query = $this->db->get_where('news', array("slug", $slug)); 
     $row = $query->row_array();      

    } 

Если я пытаюсь «эхо» информации, например echo $row["message"]; я вижу пустую страницу. =/

Что я делаю неправильно?

ответ

1
$query = $this->db->get('news', array("slug", $slug))->row_array(); 

или

$query = $this->db->where("slug", $slug)->get('news')->row_array(); 
var_dump($query); 
+0

Привет, спасибо @max. Работал. :) – Peter

+2

@ jjPeter88 добро пожаловать, но здесь вместо того, чтобы поблагодарить вас, нужно щелкнуть маленькую контрольную иконку в левой части моего ответа – max

0

в моей НШ мнению, это не очень хорошая идея

public function news($slug = "") 

единственный способ его приемлемым сказать, что параметр метода может быть пустым, если методом все еще работает без него. который в этом случае не будет. все равно позволяет писать на это

// the fields you want 
    $this->db->select('id,and,oh,here,are,some,fields'); 
    // the where condition 
    $this->db->where('slug', $slug); 
    // the table name and create the query 
    $query = $this->db->get('news'); 

теперь перед отправкой $ запрос в мир, убедитесь, что он имеет запись для вас, используя num_rows()

if ($query->num_rows() == 1) { return $query->row_array(); } 

// so you also have the option to check for and return a group of records 
// but the rules this time are one article only, so return false 
else{ return false ; } 

теперь в вашем контроллере, предполагая, что ваш модель называется что-то вроде статей, сделать что-то вроде этого

$slug = 'something that has already been validated' ; 

    // if no article came back, do something else 
    if(! $article = $this->articles->news($slug)) 
{ 
    // no article came back 
    // show appropriate view 
    $this->_showNoArticleFor($slug) ; 

} 

else{ $this->_showFound($article) ; } 

в CodeIgniter подчеркивания в именах методов управления автоматически делает их ПОИ чтобы они не могли быть доступны публично. в общем случае, если форма или поиск не сработают - вызовите отдельный метод, в котором четко указано, что что-то не найдено или его не удалось. таким образом вы сохраняете свои взгляды отдельно, потому что представления часто меняются. в противном случае вы будете складывать совершенно разные типы файлов вида внутри, если условия и беспорядок.

Смежные вопросы