0

私はcakephpが初めてです。範囲なしで、cakephp の日付で検索する方法。日付ピッカーと検索を使用して日付を選択します。私のインデックス部分には、作成されたレコードがあります.1つの日付ピッカーがあり、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 に答える