2012-01-12 5 views
0

cupcakeフォーラムプラグインの検索リンクをクリックすると、検索条件を入力して送信をクリックすると、Firefoxで空白のページが表示され、http 404のWebサイトはIEで見つかりません。cakephp:http 404 Webページを提供する検索ページが見つかりません

私は何が間違っているのか分かりません。誰か助けてくれますか?ありがとうございました。

class SearchController extends ForumAppController { 

/** 
* Controller Name 
* @access public 
* @var string 
*/ 
public $name = 'Search'; 

/** 
* Models 
* @access public 
* @var array 
*/ 
public $uses = array('Forum.Topic'); 

/** 
* Pagination 
* @access public 
* @var array 
*/ 
public $paginate = array( 
    'Topic' => array(
     'order' => 'LastPost.created DESC', 
     'contain' => array('ForumCategory.title', 'User.id', 'User.username', 'LastPost.created', 'LastUser.username', 'Poll.id', 'FirstPost.content') 
    ) 
); 

/** 
* Search the topics 
* @access public 
* @param string $type 
*/ 
public function index($type = '') { 
    $searching = false; 

    print_r($this->params['named']); 

    // Build 
    if (!empty($this->params['named'])) { 
     foreach ($this->params['named'] as $field => $value) { 
      $this->data['Topic'][$field] = urldecode($value); 
     } 
    } 

    if ($type == 'new_posts') { 
     $this->data['Topic']['orderBy'] = 'LastPost.created'; 
     $this->paginate['Topic']['conditions']['LastPost.created >='] = $this->Session->read('Forum.lastVisit'); 
    } 
    echo '<br/>'; 
    print_r($this->data); 
    // Search 
    if (!empty($this->data)) { 
     $searching = true; 
     $this->paginate['Topic']['limit'] = $this->Toolbar->settings['topics_per_page']; 

     if (!empty($this->data['Topic']['keywords'])) { 
      if ($this->data['Topic']['power'] == 0) { 
       $this->paginate['Topic']['conditions']['Topic.title LIKE'] = '%'. $this->data['Topic']['keywords'] .'%'; 
      } else { 
       $this->paginate['Topic']['conditions']['OR'] = array(
        array('Topic.title LIKE' => '%'. $this->data['Topic']['keywords'] .'%'), 
        array('FirstPost.content LIKE' => '%'. $this->data['Topic']['keywords'] .'%') 
       ); 
      } 
     } 

     if (!empty($this->data['Topic']['category'])) { 
      $this->paginate['Topic']['conditions']['Topic.forum_category_id'] = $this->data['Topic']['category']; 
     } 

     if (!empty($this->data['Topic']['orderBy'])) { 
      $this->paginate['Topic']['order'] = $this->data['Topic']['orderBy'] .' DESC'; 
     } 

     if (!empty($this->data['Topic']['byUser'])) { 
      $this->paginate['Topic']['conditions']['User.username LIKE'] = '%'. $this->data['Topic']['byUser'] .'%'; 
     } 

     $this->set('topics', $this->paginate('Topic')); 
    } 

    $this->Toolbar->pageTitle(__d('forum', 'Search', true)); 
    $this->set('menuTab', 'search'); 
    $this->set('searching', $searching); 
    $this->set('forums', $this->Topic->ForumCategory->getHierarchy($this->Toolbar->getAccess(), $this->Session->read('Forum.access'), 'read')); 
} 

} 
?> 

topic.phpモデル:

class Topic extends ForumAppModel { 

/** 
* Belongs to 
* @access public 
* @var array 
*/ 
public $belongsTo = array(
    'ForumCategory' => array(
     'className'  => 'Forum.ForumCategory', 
     'counterCache' => true 
    ), 
    'User' => array(
     'className'  => 'Forum.User' 
    ), 
    'FirstPost' => array(
     'className'  => 'Forum.Post', 
     'foreignKey' => 'firstPost_id' 
    ), 
    'LastPost' => array(
     'className'  => 'Forum.Post', 
     'foreignKey' => 'lastPost_id' 
    ), 
    'LastUser' => array(
     'className'  => 'Forum.User', 
     'foreignKey' => 'lastUser_id' 
    ) 
); 

/** 
* Has one 
* @access public 
* @var array 
*/ 
public $hasOne = array(
    'Poll' => array(
     'className' => 'Forum.Poll', 
     'dependent' => true 
    ) 
); 

/** 
* Has many 
* @access public 
* @var array 
*/ 
public $hasMany = array(
    'Post' => array(
     'className' => 'Forum.Post', 
     'exclusive' => true, 
     'dependent' => true, 
     'order'  => 'Post.created DESC', 
    ) 
); 

index.ctpビュー:

<?php // Search orderbY 

$orderBy = array(
    'LastPost.created' => __d('forum', 'Last post time', true), 
    'Topic.created' => __d('forum', 'Topic created time', true), 
    'Topic.post_count' => __d('forum', 'Total posts', true), 
    'Topic.view_count' => __d('forum', 'Total views', true) 
); ?> 

<h2>Search</h2> 

<?php echo $form->create('Topic', array('url' => array('controller' => 'search', 'action' => 'index'))); ?> 
<div id="search"> 

    <?php 
    echo $form->input('keywords', array('div' => false, 'label' => false, 'style' => 'width: 300px')); 
    echo $form->label('power', __d('forum', 'Power Search?', true)); 
    echo $form->input('category', array('div' => false, 'label' => false, 'options' => $forums, 'escape' => false, 'empty' => true)); 
    echo $form->input('orderBy', array('div' => false, 'label' => false, 'options' => $orderBy)); 
    echo $form->label('byUser', __d('forum', 'By User (Username)', true) .':'); 
    echo $form->input('byUser', array('div' => false, 'label' => false, 'style' => 'width: 150px')); 
    ?> 
</div> 
<?php echo $form->end(__d('forum', 'Search Topics', true)); 
pr($this->validationErrors); 
?> 

<?php // Is searching 
if ($searching === true) { ?> 

<div class="forumWrap"> 
    <?php echo $this->element('pagination'); ?> 

    <table cellspacing="0" class="table"> 
    <tr> 
     <th colspan="2"><?php echo $paginator->sort(__d('forum', 'Topic', true), 'Topic.title'); ?></th> 
     <th><?php echo $paginator->sort(__d('forum', 'Forum', true), 'Topic.forum_category_id'); ?></th> 
     <th><?php echo $paginator->sort(__d('forum', 'Author', true), 'User.username'); ?></th> 
     <th><?php echo $paginator->sort(__d('forum', 'Created', true), 'Topic.created'); ?></th> 
     <th><?php echo $paginator->sort(__d('forum', 'Posts', true), 'Topic.post_count'); ?></th> 
     <th><?php echo $paginator->sort(__d('forum', 'Views', true), 'Topic.view_count'); ?></th> 
     <th><?php echo $paginator->sort(__d('forum', 'Activity', true), 'LastPost.created'); ?></th> 
    </tr> 

    <?php if (empty($topics)) { ?> 
    <tr> 
     <td colspan="8" class="empty"><?php __d('forum', 'No results were found, please refine your search criteria.'); ?></td> 
    </tr> 
    <?php } else { 
     $counter = 0; 
     foreach ($topics as $topic) { 
      $pages = $cupcake->topicPages($topic['Topic']); ?> 

    <tr<?php if ($counter % 2) echo ' class="altRow"'; ?>> 
     <td class="ac" style="width: 35px"><?php echo $cupcake->topicIcon($topic); ?></td> 
     <td> 
      <?php if (!empty($topic['Poll']['id'])) { 
       echo $html->image('/forum/img/poll.png', array('alt' => 'Poll', 'class' => 'img')); 
      } ?> 

      <?php echo $cupcake->topicType($topic['Topic']['type']); ?> 
      <strong><?php echo $html->link($topic['Topic']['title'], array('controller' => 'topics', 'action' => 'view', $topic['Topic']['id'])); ?></strong> 

      <?php if (count($pages) > 1) { ?> 
      <br /><span class="gray"><?php __d('forum', 'Pages'); ?>: [ <?php echo implode(', ', $pages); ?> ]</span> 
      <?php } ?> 
     </td> 
     <td class="ac"><?php echo $html->link($topic['ForumCategory']['title'], array('controller' => 'categories', 'action' => 'view', $topic['Topic']['forum_category_id'])); ?></td> 
     <td class="ac"><?php echo $html->link($topic['User']['username'], array('controller' => 'users', 'action' => 'profile', $topic['User']['id'])); ?></td> 
     <td class="ac"><?php echo $time->niceShort($topic['Topic']['created'], $cupcake->timezone()); ?></td> 
     <td class="ac"><?php echo number_format($topic['Topic']['post_count']); ?></td> 
     <td class="ac"><?php echo number_format($topic['Topic']['view_count']); ?></td> 
     <td> 
      <?php // Last activity 
      if (!empty($topic['LastPost'])) { 
       $lastTime = (!empty($topic['LastPost']['created'])) ? $topic['LastPost']['created'] : $topic['Topic']['modified']; ?> 

       <em><?php echo $time->relativeTime($lastTime, array('userOffset' => $cupcake->timezone())); ?></em><br /> 
       <span class="gray"><?php __d('forum', 'by'); ?> <?php echo $html->link($topic['LastUser']['username'], array('controller' => 'users', 'action' => 'profile', $topic['Topic']['lastUser_id'])); ?></span> 
       <?php echo $html->image('/forum/img/goto.png', array('alt' => '', 'url' => array('controller' => 'topics', 'action' => 'view', $topic['Topic']['id'], 'page' => $topic['Topic']['page_count'], '#' => 'post_'. $topic['Topic']['lastPost_id']))); ?> 
      <?php } else { 
       __d('forum', 'No latest activity to display'); 
      } ?> 
     </td> 
    </tr> 

     <?php ++$counter; 
     } 
    } ?> 
    </table> 

    <?php echo $this->element('pagination'); ?> 
</div> 
<?php } ?> 

答えて

0

Iが追加されました:

if (isset($this->Security)){ 
$this->Security->enabled=false; 
    } 

以下であるsearch_controller

をsearch_controller.phpのbeforeFilter関数に追加すると、今すぐ検索結果を取得できます。 HTTP 404ウェブサイトが見つかりませんでした。 :)

関連する問題