2016-09-27 6 views
0

Добрый день, поэтому я хочу проверить, действительно ли определенное значение в моей базе данных истинно для CakePHP.
My SQL таблица называется Оральный и выглядит следующим образомCakePHP проверить, истинно ли значение из базы данных

--------------------- 
    |PK|OralPresentation| 
    --------------------- 
    |1 |1    | 
    --------------------- 

Так что я хочу делать в контроллере, чтобы проверить, если это значение равно 1. OralPresentation
Я делаю это в следующем коде

  $OralStatus = $this->Submission->query("SELECT * FROM Oral;"); 
      //If Oral Presentations are activated 
      if($OralStatus['0']['PK']['OralPresentation']==1) 
      { 
       $this->set('Istrue','true'); //Passing this information to the view. 
      } 
      else 
      { 
       $this->set('Istrue','false'); 
      } 
     } 

Теперь, когда я эхо isTrue на мой взгляд, он всегда возвращает ложь, несмотря на таблицу базы данных является 1. Еще одно решение, я попробовал это в IF заявлении

if($OralStatus['0']['PK']['OralPresentation']) 

ответ

0

Если вы знаете PK, который вы пытаетесь проверить, удобным способом сделать это будет использование field.

$this->Oral->id = 1; 
$Istrue = $this->Oral->field('OralPresentation'); // value for pk 1 
$this->set(compact('Istrue')); 

cake docs on field

php compact

+0

Итак, я бы ввел код выше инструкции IF? В первой строке указано положение Во втором я проверяю Oralpresentation в позиции 1 во второй строке Я понимаю все остальное, но что делает компактный? –

+0

Compact создает массив, содержащий переменные и их значения. Таким образом, вы заменили бы оператор 'if' на' $ this-> set (compact ('Istrue')); 'установить значение' $ Istrue' для представления. В качестве альтернативы вы можете заменить оператор if на '$ this-> set ('Istrue', $ Istrue);'. – bill

+0

Возможно, мне нужно сохранить IF, так как я хочу создать ссылку в представлении, если это правда. Вот почему я передаю значение Спасибо за помощь !!! –

0
 $statusQuery = $this->Submission->query("SELECT * FROM oral WHERE PK = 1"); 
     $this->set('status',$statusQuery['0']['oral']['OralPresentation']); 
     $status = $statusQuery['0']['oral']['OralPresentation']; 
     if($status['0']['oral']['OralPresentation']==1) 
     { 
      $this->set('Istrue',$status); 
     } 
     else 
     { 
      $this->set('Istrue',$status); 
     } 
    } 

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

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