2016-03-30 1 views
1

Добрый день, У меня есть файл CakePHP (мой файл CTP на мой взгляд), который нормализует оценки судей. Теперь, когда оценки были нормализованы, я хочу вставить их в базу данных для последующей печати в CSV-файле. Я попробовал пару разных вещей, но ничего не сработало. Цель состоит в том, чтобы ввести нормированные оценки, созданные моим кодом. Я знаю, как вставлять пользовательский ввод в CakePHP. То, что мне неприятно, - это вставка данных, генерируемых кодом. Я использую CakePHP V2 и MySQL Workbench. Ниже приведен код, который у меня есть. Он набирает нормированные оценки из массива затем печатая их на веб-страницеВставка Выведенный компьютером вывод в CakePHP

if($post['poster']['posterid'] == $current){ 
      if($count<2){ 
       $allPresenters[$current] = $post['poster']['author']; 
       echo "<tr><td>".$post['poster']['posterid']."</td>"; 
       echo "<td>".$post['poster']['author']."</td><td>".$post['judge']['first']." ".$post['judge']['last']."</td>"; 
       echo "<td>".$allScores[$post['Post']['id']]."</td><td>".$normalizedScores[$post['Post']['id']]."</td></tr>"; 
       $localTotal += ($allScores[$post['Post']['id']]); 
       $normalTotal += ($normalizedScores[$post['Post']['id']]); 
       $count++;  
       //Insert Normalized score here 
      } 
     } 
     else{ 
      echo "<tr><td></td><td></td><td>Total Score:</td><td>".$localTotal."</td><td>".$normalTotal."</td></tr>"; 
      $allNormalScores[$current] = $normalTotal; 
      $allScores2[$current] = $localTotal; 
      $current = $post['poster']['posterid']; 
      $localTotal =0; 
      $normalTotal =0; 
      $count = 0; 
      echo "<tr><td>".$post['poster']['posterid']."</td>"; 
      echo "<td>".$post['poster']['author']."</td><td>".$post['judge']['first']." ".$post['judge']['last']."</td>"; 
      echo "<td>".$allScores[$post['Post']['id']]."</td><td>".$normalizedScores[$post['Post']['id']]."</td></tr>"; 
      $localTotal += ($allScores[$post['Post']['id']]); 
      $normalTotal += ($normalizedScores[$post['Post']['id']]); 
      //Insert normalized score here 
     } 

    } 

Ниже моя модель

<?php 
App::uses("ConnectionManager","Model/ConnectionManager"); 
class Post extends AppModel{ 
    public $name = "Post"; 
    public $belongsTo = array("poster","judge"); 
    public $validate = array(
     'poster_id' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria1' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria2' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria3' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria4' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria5' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria6' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria7' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria8' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria9' => array(
      'rule' => 'notEmpty' 
     ), 
     'criteria10' => array(
      'rule' => 'notEmpty' 
     ), 
     'comments' => array(

     ), 
     'Normalized' => array(

     ) 


    ); 

    public function isOwnedBy($post, $user) { 
     return $this->field('id', array('id' => $post, 'user_id' => $user)) === $post; 
    } 
} 

ответ

0

Если вы хотите вставить данные, которые вы оказанной представления в базу данных через POST, вам нужно будет создать форму на странице и добавить данные в вашу форму.

Однако, если нормализация данных - это то, что можно сделать программно без взаимодействия с пользователем, то я не вижу, что нужно сделать для представления. Вы можете просто обработать его в модели, сохранить его в базе данных и затем визуализировать (при необходимости) нормализованные данные для представления.

Вы действительно не должны вычислять данные и цифры в представлениях, это то, на что рассчитан слой модели.

+0

Итак, я предпочел бы передать все методы нормализации и т. Д. В контроллер представления модели? Сегодня я попробую что-нибудь сделать. Причина, по которой я имел это в виду, - показать результаты на веб-странице. Однако недавно мне было предложено импортировать файлы в CSV. Мне просто интересно, есть ли способ, которым я могу просто отправить всю эту информацию в базу данных с представлением, поскольку у меня уже есть весь необходимый код. –

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