2017-01-26 6 views
0

Спасибо заранее, у меня есть страница index.ctp, где у меня есть форма, которая имеет скрытое поле со значением = "2". при отправке формы значение передается контроллеру и устанавливает файл cookie каккак получить скрытое значение поля из формы формы представления и установить как значение cookie и вернуться на ту же страницу просмотра в cakephp

$ cookieVal = $ this-> request-> data ['hideCookieVal'];
$ this-> cookie-> write ('hideNextCookieVal', $ cookieVal, false, 3600);

и я пытаюсь передать в переменном, чтобы получить это значение в index.ctp так я использовал как этот $this->set('nextCookie',$this->Cookie->read('hideNextCookieVal'));

В index.ctp страницы я доступ к этому значению в varible имени $ nextCookie. Я использовал эту переменную в если условие для отображения другой раздел страницы HTML, если куки установлен, но он бросает ошибку в

Error: Call to a member function write() on a non-object 
File: D:\wamp\www\invl_exams\app\Controller\UsersController.php 
Line: 135 

Мой код, как показано ниже:

UsersController.php 

<?php 
App::uses('CakeEmail', 'Network/Email'); 

class UsersController extends AppController 
{ 
    function index() 
    { 

Line 134 $cookieVal = $this->request->data['hideCookieVal'];    
Line 135 $this->cookie->write('hideNextCookieVal',$cookieVal, false, 3600); 
Line 136 $this->set('nextCookie',$this->Cookie->read('hideNextCookieVal')); 

    } 
} 

index.ctp page 

<form class="shopping-cart" name="cartTable" id="cartTable" method="post" action="<?php echo $this->webroot ?>users/index"> 

<input type="hidden" name="hideCookieVal" value="2"> 

<button type="submit" class="next pull-right" id="nextId">NEXT</button> 
</form> 
<?php 
if($nextCookie == 2) 
{ 

?> 

<section> 
    <table> 
    <!-- Table content here --> 
    <table> 
</section> 

<?php 
} 
?> 

ответ

0

Вы должны загрузить CookieComponent в контроллере, а также, это Cookie с c буквы в верхнем регистре

<?php 

    App::uses('CakeEmail', 'Network/Email'); 

    class UsersController extends AppController { 
     //Add this line 
     public $components = array('Cookie'); 

     function index() { 
      Line 134 $cookieVal = $this->request->data['hideCookieVal']; 
      //Change cookie to Cookie    
      Line 135 $this->Cookie->write('hideNextCookieVal',$cookieVal, false, 3600); 
      Line 136 $this->set('nextCookie',$this->Cookie->read('hideNextCookieVal')); 
     } 

    } 

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

  • Нет связанных вопросов^_^