2015-01-14 38 views
0

我目前正在開發的東西,我有一個問題就在這裏。每天我添加了一年搜索表單的時候,我的PAGINATE設置將不會工作。與搜索表單CakePHP的分頁設置

型號分頁功能

/** 
* generate settings for pagination 
* @return array $settings 
*/ 

public function generateSettingsForPager($transportId, $year){ 
    $conditions['delete_flag'] = 0; 

    if($transportId){ 
     $conditions['transport_id'] = $transportId; 
    } 

    if($year){ 
     $conditions['year'] = $year; 
    } 

    $settings = array (
     'fields' => 'id, year, transport_id, item, description, currency, all_in_php', 
     'limit' => 30, 
     'recursive' => -1, 
     'order' => array(
      'id' => 'desc' 
     ), 
     'conditions' => $conditions 
    ); 

    return $settings; 
} 

控制器(索引/查看功能)

public function index(){ 
$getData = $this->request->query; 
$transportId = isset($getData['transport_id']) ? $getData['transport_id'] : null; 
$year = isset($getData['year']) ? $getData['year'] : null; 

$this->paginate =  $this->UpgradingAndModification->generateSettingsForPager($transportId, $year); 
$upgradingAndModifications = $this->paginate('UpgradingAndModification'); 

$this->set('transportId', $transportId); 
$this->set('year', $year); 
$this->set('upgradingAndModifications', $upgradingAndModifications); 
} 

索引/查看搜索表單

<?php echo $this->Form->create('search',array('url' => '/upgradingAndModifications/index','type' => 'get')); ?> 
<div class="well"> 
    <div class="pull-left"> 
     <?php 
     echo $this->Form->input('transport_id', [ 
      'options' => $this->App->getTransportNames(), 
      'style' => 'margin-right:50px', 
      'tabindex' => '15', 
      'label' => 'Transport', 
      'empty' => 'Select Transport Name', 
      'default' => (isset($transportId)) ? $transportId : '' 
      ])."&nbsp&nbsp"; 
     ?> 
    </div> 
    <div> 
     <?php echo $this->Form->input('year', 
       [ 
       'empty' => 'Choose a year', 
       'class' => 'space-right-10', 
       'type' => 'date', 
       'dateFormat' => 'Y', 
       'minYear' => date('Y') - 100, 
       'maxYear' => date('Y'), 
       'selected' => (isset($year)) ? $year : '' 
      ])."&nbsp&nbsp"; 
     ?> 
    </div> 
    <input type="submit" value="search" class="btn btn-primary btn-sm" id="searchButton"> 
</div> 
<?php echo $this->Form->end();?> 

幫助將不勝感激!..謝謝!

+0

'我的分頁設置不起作用..'意思?什麼是不工作,曾經在搜索表單之前工作? –

+0

我的意思是在我的索引文件中,每次選擇「年」時都不會顯示任何數據 - 這是我的搜索表單中的過濾器。但我設法解決了這個問題。回覆晚了非常抱歉。將發佈答案。謝謝! – banban

回答

0

對不起,這很晚的更新傢伙。我設法通過在我的「年」搜索表單中簡單地改變所選值來解決這個問題。因此,該行變爲 -

'value'=>(isset($ year))? $年: '',

代替OF-

'選擇'=>(isset($年))? $ year:'',