CakePHP 2.6.10 페이징 및 검색 기능
1. public에 coponents 만들기
컨트롤러public $components = array('Paginator');
2. 조건 설정 및 내보내기
컨트롤러// フィールド指定
$paginate['fields'][] = 'Orders.*, OrderDetails.*, Members.member_flg, Members.pref';
// Join設定
$paginate['joins'][] = array(
'type' => 'Inner',
'table' => 'order_detail',
'alias' => 'OrderDetails',
'conditions' => 'Orders.order_no = OrderDetails.order_no',
);
$paginate['joins'][] = array(
'type' => 'Inner',
'table' => 'Member_list',
'alias' => 'Members',
'conditions' => 'Members.member_id = Orders.login_id',
);
//表示数指定
$paginate['limit'] = 20;
//ソート設定
$paginate['order']['order_date'] = "desc";
//書き出し
$this->Paginator->settings = $paginate;
//存在しないページにいる場合は最初に戻す
try{
$orders = $this->paginate('Orders', $option['conditions']);
}catch(Exception $e){
$this->request->params['named']['page'] = 1;
$orders = $this->paginate('Orders', $option['conditions']);
}
$this->set('Orders', $orders);
기타 검색 조건
컨트롤러// 検索条件
if(!empty($_GET['mode']) && $_GET['mode'] == 'search'){
// ここに条件を入れていく
// 期間指定 //Orders.order_date を書き換え
if(!empty($_GET['date_before']) && !empty($_GET['date_after'])){
$option['conditions']['Orders.order_date BETWEEN ? AND ?'] = array($_GET['date_before']." 00:00:00", $_GET['date_after']." 23:59:59");
$getform['date_before'] = $_GET['date_before'];
$getform['date_after'] = $_GET['date_after'];
}elseif(!empty($_GET['date_before']) && empty($_GET['date_after'])){
$option['conditions']['Orders.order_date >='] = $_GET['date_before']." 00:00:00";
$getform['date_before'] = $_GET['date_before'];
}elseif(empty($_GET['date_before']) && !empty($_GET['date_after'])){
$option['conditions']['Orders.order_date <='] = $_GET['date_after']." 00:00:00";
$getform['date_after'] = $_GET['date_after'];
}
// フリーワード
if(!empty($_GET['keyword'])){
$keys = preg_split('/[\s|\x{3000}]+/u', $_GET['keyword']);
foreach($keys as $key => $value){
$option['conditions'][$key]['OR']['Orders.order_no like'] = "%".$value."%";
$option['conditions'][$key]['OR']['Orders.campany_name like'] = "%".$value."%";
$option['conditions'][$key]['OR']['Orders.order_name_sei like'] = "%".$value."%";
}
}
$getform['keyword'] = $_GET['keyword'];
}
3. 양식 만들기
HTML<!-- 検索機能 -->
<form method="get" name="search" id="search">
<div>
<input type="hidden" name="mode" value="search">
<h3>検索項目</h3>
<span>登録期間:
<input type="date" name="date_before" <?php if(!empty($getform['date_before'])){ echo 'value="'.$getform['date_before'].'"';} ?>>
-
<input type="date" name="date_after" <?php if(!empty($getform['date_after'])){ echo 'value="'.$getform['date_after'].'"';} ?>>
</span>
<span>キーワード:
<input type="text" name="keyword" value="<?php if(!empty($getform['keyword'])){ echo $getform['keyword']; } ?>">
</span>
<input type="submit" value="検索">
</div>
</form>
3. 페이징 기능 만들기
HTML<!-- ページング -->
<div id="paginate">
<span class="prev"><?php echo $this->Paginator->prev('< 前へ', array(), null, array('class' => 'prev disabled')); ?></span>
<span class="pageno"><?php echo $this->Paginator->numbers(array('separator' => '')); ?></span>
<span class="next"><?php echo $this->Paginator->next('次へ >', array(), null, array('class' => 'next disabled')); ?></span>
</div>
Reference
이 문제에 관하여(CakePHP 2.6.10 페이징 및 검색 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Youz/items/2b550691228048fa40ae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public $components = array('Paginator');
컨트롤러
// フィールド指定
$paginate['fields'][] = 'Orders.*, OrderDetails.*, Members.member_flg, Members.pref';
// Join設定
$paginate['joins'][] = array(
'type' => 'Inner',
'table' => 'order_detail',
'alias' => 'OrderDetails',
'conditions' => 'Orders.order_no = OrderDetails.order_no',
);
$paginate['joins'][] = array(
'type' => 'Inner',
'table' => 'Member_list',
'alias' => 'Members',
'conditions' => 'Members.member_id = Orders.login_id',
);
//表示数指定
$paginate['limit'] = 20;
//ソート設定
$paginate['order']['order_date'] = "desc";
//書き出し
$this->Paginator->settings = $paginate;
//存在しないページにいる場合は最初に戻す
try{
$orders = $this->paginate('Orders', $option['conditions']);
}catch(Exception $e){
$this->request->params['named']['page'] = 1;
$orders = $this->paginate('Orders', $option['conditions']);
}
$this->set('Orders', $orders);
기타 검색 조건
컨트롤러
// 検索条件
if(!empty($_GET['mode']) && $_GET['mode'] == 'search'){
// ここに条件を入れていく
// 期間指定 //Orders.order_date を書き換え
if(!empty($_GET['date_before']) && !empty($_GET['date_after'])){
$option['conditions']['Orders.order_date BETWEEN ? AND ?'] = array($_GET['date_before']." 00:00:00", $_GET['date_after']." 23:59:59");
$getform['date_before'] = $_GET['date_before'];
$getform['date_after'] = $_GET['date_after'];
}elseif(!empty($_GET['date_before']) && empty($_GET['date_after'])){
$option['conditions']['Orders.order_date >='] = $_GET['date_before']." 00:00:00";
$getform['date_before'] = $_GET['date_before'];
}elseif(empty($_GET['date_before']) && !empty($_GET['date_after'])){
$option['conditions']['Orders.order_date <='] = $_GET['date_after']." 00:00:00";
$getform['date_after'] = $_GET['date_after'];
}
// フリーワード
if(!empty($_GET['keyword'])){
$keys = preg_split('/[\s|\x{3000}]+/u', $_GET['keyword']);
foreach($keys as $key => $value){
$option['conditions'][$key]['OR']['Orders.order_no like'] = "%".$value."%";
$option['conditions'][$key]['OR']['Orders.campany_name like'] = "%".$value."%";
$option['conditions'][$key]['OR']['Orders.order_name_sei like'] = "%".$value."%";
}
}
$getform['keyword'] = $_GET['keyword'];
}
3. 양식 만들기
HTML<!-- 検索機能 -->
<form method="get" name="search" id="search">
<div>
<input type="hidden" name="mode" value="search">
<h3>検索項目</h3>
<span>登録期間:
<input type="date" name="date_before" <?php if(!empty($getform['date_before'])){ echo 'value="'.$getform['date_before'].'"';} ?>>
-
<input type="date" name="date_after" <?php if(!empty($getform['date_after'])){ echo 'value="'.$getform['date_after'].'"';} ?>>
</span>
<span>キーワード:
<input type="text" name="keyword" value="<?php if(!empty($getform['keyword'])){ echo $getform['keyword']; } ?>">
</span>
<input type="submit" value="検索">
</div>
</form>
3. 페이징 기능 만들기
HTML<!-- ページング -->
<div id="paginate">
<span class="prev"><?php echo $this->Paginator->prev('< 前へ', array(), null, array('class' => 'prev disabled')); ?></span>
<span class="pageno"><?php echo $this->Paginator->numbers(array('separator' => '')); ?></span>
<span class="next"><?php echo $this->Paginator->next('次へ >', array(), null, array('class' => 'next disabled')); ?></span>
</div>
Reference
이 문제에 관하여(CakePHP 2.6.10 페이징 및 검색 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Youz/items/2b550691228048fa40ae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<!-- 検索機能 -->
<form method="get" name="search" id="search">
<div>
<input type="hidden" name="mode" value="search">
<h3>検索項目</h3>
<span>登録期間:
<input type="date" name="date_before" <?php if(!empty($getform['date_before'])){ echo 'value="'.$getform['date_before'].'"';} ?>>
-
<input type="date" name="date_after" <?php if(!empty($getform['date_after'])){ echo 'value="'.$getform['date_after'].'"';} ?>>
</span>
<span>キーワード:
<input type="text" name="keyword" value="<?php if(!empty($getform['keyword'])){ echo $getform['keyword']; } ?>">
</span>
<input type="submit" value="検索">
</div>
</form>
HTML
<!-- ページング -->
<div id="paginate">
<span class="prev"><?php echo $this->Paginator->prev('< 前へ', array(), null, array('class' => 'prev disabled')); ?></span>
<span class="pageno"><?php echo $this->Paginator->numbers(array('separator' => '')); ?></span>
<span class="next"><?php echo $this->Paginator->next('次へ >', array(), null, array('class' => 'next disabled')); ?></span>
</div>
Reference
이 문제에 관하여(CakePHP 2.6.10 페이징 및 검색 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Youz/items/2b550691228048fa40ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)