0

我是 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>
4

1 回答 1

1

那么像这样使用 FormHelper 将使用 POST 方法创建一个表单。我不知道您为什么要使用 id 来提供它。此外,您似乎希望返回的用户不止一个,应该在所选日期开始他们的旅程……在这种情况下, $user['Create']['id'] 没有任何意义。

将其更改为:

<?php echo $this->form->create("Create",array('action' => 'search')); ?>

在您的控制器中,您需要找到在所选日期开始他们的旅程的所有用户:由于默认情况下 FormHelper 使用 POST 作为提交方法,您可以在以下位置找到表单数据:$this->request->data['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

于 2013-05-21T19:22:50.200 回答