我是cakephp的新手。 如何在cakephp中按日期搜索,没有范围。 使用日期选择器和搜索选择日期。 在我的索引部分中创建了记录。我有一个日期选择器,搜索按钮位于index.ctp的顶部。 在搜索中我应该写什么
创建部件已完成。在该创建中,如果我选择日期和视图意味着应显示特定日期的详细信息。
这是我的编码
function index()
{
$user = $this->Create->find('all');
$this->set('create', $user);
}
function Search()
{
???
$user = $this->Create->find('all',array('conditions'=>array('journeydate'=>'journeydate')));
$this->set('create', $user);
}
index.ctp
<!-- link to add new users page -->
<script>
$(function() {
$(".datepicker").datepicker({ dateFormat: "yy-mm-dd" });
});
</script>
<?php
foreach($create as $user ){}
?>
<?php echo $this->form->create("Create",array('action' => 'search',',$user['Create']['id']));
echo $this->form->input('date',
array(
'class'=>'datepicker',
'type'=>'text'
));
echo $this->form->end("Search");
?>
<table style='padding:5px;'>
<!-- table heading -->
<tr style='background-color:#fff;'>
<th>Id</th>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
<th>Phone no</th>
<th>Bus Name</th>
<th>Ticket no</th>
<th>Seat No</th>
<th>From</th>
<th>To</th>
<th>Journey Date</th>
<th>Booking Date</th>
<th>Amount</th>
</tr>
<?php
foreach($create as $user ){
echo "<tr>";
echo "<td>{$user['Create']['id']}</td>";
echo "<td>{$user['Create']['name']}</td>";
echo "<td>{$user['Create']['age']}</td>";
echo "<td>{$user['Create']['gender']}</td>";
echo "<td>{$user['Create']['phoneno']}</td>";
echo "<td>{$user['Create']['busname']}</td>";
echo "<td>{$user['Create']['ticketno']}</td>";
echo "<td>{$user['Create']['seatno']}</td>";
echo "<td>{$user['Create']['from']}</td>";
echo "<td>{$user['Create']['to']}</td>";
echo "<td>{$user['Create']['journeydate']}</td>";
echo "<td>{$user['Create']['bookingdate']}</td>";
echo "<td>{$user['Create']['amount']}</td>";
echo "</tr>";
}
?>
<tr><td>
<INPUT TYPE="BUTTON" VALUE="Back" ONCLICK="window.location.href='/newcake/creates/create'"></td></tr>
</table>
答案 0 :(得分:1)
使用FormHelper就可以使用POST方法创建一个Form。 我不知道你为什么要用id来支持它。此外,您似乎希望返回的用户应该在所选日期开始他们的旅程...在这种情况下,$ user ['Create'] ['id']没有任何意义。
将其更改为:
<?php echo $this->form->create("Create",array('action' => 'search')); ?>
在您的控制器中,您需要找到在所选日期开始旅程的所有用户: 由于FormHelper默认使用POST作为提交方法,因此您可以在以下位置找到表单数据: $这 - &GT;请求 - &GT;数据[ '为MyModel'] [ '标题'];
如果您不确定,可以随时输出提交的数据
pr($this->request->data);
您的搜索功能应如下所示:
public function Search(){
$date = $this->request->data['Create']['date'];
$user = $this->Create->find('all', array(
'conditions' => array(
'journeydate'=> $date,
),
));
$this->set('create', $user);
}
您还应该更加谨慎地命名模型,因为在这种情况下,“创建”似乎并不是非常合适。 为了充分利用CakePHP,您应该遵守惯例。 http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html