в моей НШ мнению, это не очень хорошая идея
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 подчеркивания в именах методов управления автоматически делает их ПОИ чтобы они не могли быть доступны публично. в общем случае, если форма или поиск не сработают - вызовите отдельный метод, в котором четко указано, что что-то не найдено или его не удалось. таким образом вы сохраняете свои взгляды отдельно, потому что представления часто меняются. в противном случае вы будете складывать совершенно разные типы файлов вида внутри, если условия и беспорядок.
Привет, спасибо @max. Работал. :) – Peter
@ jjPeter88 добро пожаловать, но здесь вместо того, чтобы поблагодарить вас, нужно щелкнуть маленькую контрольную иконку в левой части моего ответа – max