6月 07

22.会員一覧と会員検索

go @ 5:13 AM

会員管理をやります。
最初に一覧(indexアクション)の整形をしておきます。いまのままだと見づらいので。
admin_index.ctp を開いて、不要な列を削除します。
今は、

<tr>
	<th><?php echo $paginator->sort('id');?></th>
	<th><?php echo $paginator->sort('email');?></th>
	<th><?php echo $paginator->sort('password');?></th>
	<th><?php echo $paginator->sort('type_id');?></th>
	<th><?php echo $paginator->sort('birthday');?></th>
	<th><?php echo $paginator->sort('img1');?></th>
	<th><?php echo $paginator->sort('img2');?></th>
	<th><?php echo $paginator->sort('created');?></th>
	<th><?php echo $paginator->sort('modified');?></th>
	<th class="actions"><?php __('Actions');?></th>
</tr>

こうなっていますが、password img1 img2 modified あたりはなくてもよいと思います。
(クライアント次第ですが)
対応する td の方も削除しておきます。

と、一見して、登録日(created)がDBの日付データそのままで出力されていて見づらいです。
ということで、 members_controller.php の helper にさらに ‘Time’ を追加します。

	var $helpers = array('Html', 'Form', 'Time','Javascript');

で、ビューに戻り、誕生日と登録日は、
こうなっているのを

		<td>
			<?php echo $member['Member']['birthday']; ?>
		</td>
		<td>
			<?php echo $member['Member']['created']; ?>
		</td>

こうします。

		<td>
			<?php echo $time->format($format = 'Y/m/d', $member['Member']['birthday']); ?>
		</td>
		<td>
			<?php echo $time->format($format = 'Y/m/d', $member['Member']['created']); ?>
		</td>

ついでに、

<div class="actions">
...
</div>

の中のアクションリストは不要なので丸ごと削除しておきます。

最後に paginate の設定を入れておきます。
members_controller.php の上の方に、

	var $paginate = array(
		'limit' => 15,
		'order' => array(
			'Member.id' => 'desc'
		),
	);

を入れます。15件で改ページ、デフォルトの並び順を会員のID降順にします。

引き続き、会員検索のページの準備をします。
一覧の admin_index.ctp にそのまま検索フォームをつけてしまうというのもありかとは思いますが、とりあえず今回は別ビュー、別アクションにします。
admin_index.ctp を別の名前で保存で admin_serch.ctp を作ります。

で、フォーム開始を

<?php echo $form->create(array("action" => "search", "type" => "post")) ?>

として、

<table>
<tr>
	<th>入会日</th>
	<td>
	<?php echo $form->year("from", '2009','2010'); ?>年
	<?php echo $form->month("from",null,array('monthNames'=>false)); ?>月
	<?php echo $form->day("from",null); ?>日
	 ~
	<?php echo $form->year("to", '2009','2010'); ?>年
	<?php echo $form->month("to",null,array('monthNames'=>false)); ?>月
	<?php echo $form->day("to",null); ?>日
	</td>
</tr>
<tr>
	<th>メールアドレス</th>
	<td>
	<?php echo $form->text("email"); ?>
	</td>
</tr>
<tr>
	<th>種別</th>
	<td>
	<?php echo $form->select("type_id", $types); ?>
	</td>
</tr>
<tr>
	<th>好きな物</th>
	<td>
	<?php echo $form->input('favorites', array('multiple'=>'checkbox', 'label' => false)); ?>
	</td>
</tr>
</table>

<?php echo $form->end('        検索        '); ?>

このような検索フォーム部分を追加します。

さらにその下に

<?php $paginator->options(array('url' => $searchword  )); ?>

peginator のオプションを入れておきます。
これは peginator に検索キーワードを渡すためのものです。

>>次のページ「検索とPagination」へ

Comments are closed.

here comes