Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MVC

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: help
juramaj
Отправлено: 22 Декабря, 2014 - 21:01:41
Post Id


Гость


Покинул форум
Сообщений всего: 98
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Кто знает, как мне с модели передать переменную о предупреждении например "Нет данной статьи" Вот код который находится в модели. Если у меня всё что возвращает метод модели в контроллере складывается в $data
PHP:
скопировать код в буфер обмена
  1. public function get_station()
  2.         {
  3.             $get_id = trim(strip_tags($_GET['id']));
  4.                 $result_st = $this->db->query("SELECT * FROM `station` WHERE `id` = '$get_id'");
  5.                 if ($result_st)
  6.                 {
  7.                         return $result_st;
  8.                 }
  9.                 else
  10.                 {
  11.                     $q = 'ДАННОЙ СТАТЬИ НЕ ОБНАРУЖЕНО!';
  12.                         return $q;
  13.                 }
  14.                 $this->db->close();
  15.         }
 
 Top
teddy
Отправлено: 22 Декабря, 2014 - 21:08:18
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




juramaj пишет:
Кто знает, как мне с модели передать переменную о предупреждении например "Нет данной статьи"

Не нужно это передать из модели.
Нужно опираться на результат которую вернет модель.
К примеру если метод модели вернул false, значит записей нет и плясать дальше от этого.

juramaj пишет:
сё что возвращает метод модели в контроллере складывается в $data

Передайте эту $data во view. А при выводе можно уже сделать приблизительно такую весч:

PHP:
скопировать код в буфер обмена
  1. if(!$data) {
  2.     echo 'Нечего показывать';
  3. }else{
  4.    
  5.     foreach($data as $key=>$value) {
  6.         //some output
  7.     }
  8. }

(Отредактировано автором: 22 Декабря, 2014 - 21:09:21)

 
 Top
juramaj
Отправлено: 22 Декабря, 2014 - 21:13:32
Post Id


Гость


Покинул форум
Сообщений всего: 98
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




тоесть на сколько я понял, у вьювере уже делать дальнейшую проверку?
 
 Top
teddy
Отправлено: 22 Декабря, 2014 - 22:22:44
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Да. Не нужно заводить лишние переменные. У Вас ведь уже есть 1 переменная которая условно говоря содержит либо данные либо false и передается во вью.
Так вот при выводе делаем проверочку если переменная не false то показываем данные иначе показываем кукиш
 
 Top
Bio man
Отправлено: 22 Декабря, 2014 - 22:26:22
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Не вьювере а вьюхе или представлении.
Какая логика в MVC? Контроллер запрашивает модель, вызывает рендеринг шаблона и передает модель вьюхе.
Либо делать проверку во вьюхе.
Либо, проверку делать в контроллере.

Если кода в условном операторе немного и всего одно такое условие, то можно прямо во вьюхе.
Если условия повтаряются несколько раз, то лучше перенести это условие уровнем выше - в контроллер, и основываясь на этом условии рендерить нужную вьюху.

(Отредактировано автором: 22 Декабря, 2014 - 22:28:27)

 
 Top
teddy
Отправлено: 22 Декабря, 2014 - 22:40:09
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Одна поправочка к моему сообщению, если это что то из разряда "если не нашлось то надо отдать 404" тогда проверку нужно делать не во вью а в контроллере что бы сразу отдать 404 до вывода
 
 Top
juramaj
Отправлено: 25 Декабря, 2014 - 12:33:55
Post Id


Гость


Покинул форум
Сообщений всего: 98
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




подскажите, как мне передать вместо false например "Нет такой статьи"
PHP:
скопировать код в буфер обмена
  1. public function get_station()
  2.         {
  3.             $get_id = trim(strip_tags($_GET['id']));
  4.            // $result = $this->db->query("SELECT * FROM `station`");
  5.                 //$all_station = $result->num_rows;
  6.                 $result_st = $this->db->query("SELECT * FROM `station` WHERE `id` = '$get_id'");
  7.                 if ($result_st)
  8.                 {
  9.                         return $result_st;
  10.                 }
  11.                 else
  12.                 {
  13.                    
  14.                         return false;
  15.                 }
  16.                
  17.                 $this->db->close();  
  18.         }
 
 Top
Sail
Отправлено: 25 Декабря, 2014 - 12:56:07
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




juramaj!
1. Для чего возвращать из функции фразу, если при обработке возвращённого функцией значения ($X !== FALSE, или $X === FALSE) можно выполнить всё, что нужно?
2. К чему в теле функции вызов $this->db->close(), если он ни при каких условиях не выполняется?
 
 Top
juramaj
Отправлено: 25 Декабря, 2014 - 13:07:41
Post Id


Гость


Покинул форум
Сообщений всего: 98
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Я что то уже запутался: Кто пишет что нужно всё обрабатывать в моделе а в вьювере полько показывать что пришло с модели через контроллер, а кто пишет что можно и во вьювере делать обработки. Так как же всё таки прав?
 
 Top
caballero
Отправлено: 25 Декабря, 2014 - 13:50:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




каждый прав по своему - релизации могут быть самыми разными кому как удобно.
тем более на MVC свет клином не сошелся.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB