Yii Framework Forum: createController + action = смерть апачу - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

createController + action = смерть апачу Rate Topic: -----

#1 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 24 September 2009 - 02:25 AM

Здравствуйте!

С Yii познакомился недавно, поэтому сильно не бейте :)

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

Как лучше реализовать такое?
Интуиция подсказала сделать BasketController и выводить корзину в layout через него. Сделал простейший вариант:

controllers/BasketController.php:
    // ...
    public function actionShow()
    {
        $this->render('show', array(
            'orderUri'=>'http://',
            'clearUri'=>'http://',
            'count'=>0,
            'cost'=>0,
        ));
    }
    // ...


views/basket/show.php:
    <%= Yii::t('basket', 'Count') %>: <em><%= $count %></em>
    <%= Yii::t('basket', 'Cost') %>: <em><%= $cost %></em>
    <%= CHtml::link(Yii::t('basket', 'Clear'), $clearUri) %>
    <%= CHtml::link(Yii::t('basket', 'Order'), $orderUri) %>


views/layout/main.php:
<!-- ... -->
<div id="basket">
    <% 
        $basket = Yii::app()->createController('basket/show');
        $basket[0]->actionShow();
    %>
</div>
<!-- ... -->


Открываю любую страницу и apache отправляется восвояси после
$this->render('show', array(
(controllers/BasketController.php)

Подскажите пожалуйста, что я делаю неправильно? А может быть, такую функциональность можно реализовать как-то лучше?

Заранее спасибо :)
0

#2 User is offline   rosko 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 211
  • Joined: 04-January 09
  • Location:Kiev, Ukraine

Posted 24 September 2009 - 02:34 AM

Копай в сторону виджетов.

http://www.yiiframew...ics.view#widget
http://www.yiiframew...n.create#widget
1

#3 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 24 September 2009 - 02:44 AM

Собственно, на виджетах сначало все было сделано.

Однако потребовалось сделать "подгрузку" корзины через AJAH. Можно добавить экшн в SiteController для таких моментов, согласен (и возьму на заметку :) )

Но не хочется излишне нагружать SiteController, там у меня, увы, и так бардак. Интересно, почему апач падает, вроде бы ничего криминального
0

#4 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 24 September 2009 - 03:14 AM

rosko
Спасибо, решил, что так и сделаю. Однако хочется все равно узнать, почему падает апач :)
0

#5 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 24 September 2009 - 03:49 AM

Проблема была в
$this->render('show', array(
Надо
$this->renderPartial('show', array(


Причина в том, что render выводит контент вместе с макетом (layout), а renderPartial просто контент. Т.е. в моем случае получалось банальное зацикливание.

Надеюсь, кому-нибудь поможет :)
0

#6 User is offline   KJedi 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 381
  • Joined: 19-October 08
  • Location:Nikolaev, Ukraine (Europe)

Posted 25 September 2009 - 02:07 AM

так сказать side note - профессиональный пхп-код не пишется в асп-тегах :)
Posted Image
My Blog: http://programmersnotes.info/ - tips, design patterns, client and server-side coding, yii articles and simply my experience.

Follow me on twitter: http://twitter.com/KonstantinMirin
Add me to your friends on facebook: http://www.facebook....hp?id=784832902
0

#7 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 26 September 2009 - 02:38 AM

View PostKJedi, on 25 September 2009 - 02:07 AM, said:

так сказать side note - профессиональный пхп-код не пишется в асп-тегах :)


+1
0

#8 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 28 September 2009 - 02:05 AM

Quote

так сказать side note - профессиональный пхп-код не пишется в асп-тегах :)


http://www.yiiframew...adoViewRenderer
Довольно удобно ;)

Добавлю, что каждый раз писать <?php или <?php echo - довольно нудное занятие
0

#9 User is offline   Ninja 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 18-September 09

Posted 28 September 2009 - 01:43 PM

View Postfreezy, on 28 September 2009 - 02:05 AM, said:

Добавлю, что каждый раз писать <?php или <?php echo - довольно нудное занятие


давно отменили <? и <?= ?
0

#10 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 28 September 2009 - 02:07 PM

View PostNinja, on 28 September 2009 - 01:43 PM, said:

давно отменили <? и <?= ?

<?xml version="1.0"?>
<peace>
   <friendship>
      <bubblegum>
      </bubblegum>
   </friendship>
</peace>


PS: Пора прекращать оффтоп
0

#11 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 29 September 2009 - 01:19 PM

А в чем удобство собственно? в том что скрипт не будет крос-серверный и при переносе на другой сервер (хост) где поддержка асп=тегов в пхп отрублена - будите весь код править? мне кажется глупо.
0

#12 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 30 September 2009 - 12:41 PM

Quote

CPradoViewRenderer allows you to write view files with the following syntax:

// PHP tags:
<%= expression %>
// <?php echo expression ?>
<% statement %>
// <?php statement ?>

// component tags:
<com:WigetClass name1="value1" name2='value2' name3={value3} >
// <?php $this->beginWidget('WigetClass',
// array('name1'=>"value1", 'name2'=>'value2', 'name3'=>value3)); ?>
</com:WigetClass >


0

#13 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 06 October 2009 - 05:39 PM

И что? А если аллов_асп_тегс на хосте вырублен?

или yii типа в роле шаблонизатора меняет сам "<%" на "<?" ?
0

#14 User is offline   freezy 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 12-August 09
  • Location:Russia, Arzamas

Posted 07 October 2009 - 12:57 AM

На домашнем компьютере:

Quote

; Allow ASP-style <% %> tags.
asp_tags = Off

Все замечательно
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users