簡體   English   中英

我是否必須為cakephp中的搜索功能創建2個不同的視圖?

[英]Do I have to create 2 different views for search function in cakephp?

我是CakePHP的新手,並希望在我使用CakePHP編寫的網站中擁有一個搜索工具。 我在基本上所有邏輯都在控制器中有search()函數。 因此,在視圖文件夾中,我創建了search.ctp文件,在其中編寫了用於填寫搜索詳細信息的表單代碼。 但是我不知道在哪里編寫顯示搜索結果的代碼。 我是否應該創建另一個.ctp文件,如果是,那么該如何將其與search()函數連接,因為它將具有另一個名稱(而不是search.ctp)? 提前致謝。

這不是必需的,但是無論是否顯示結果,都必須在控制器功能和視圖中都進行切換。

例如,在您的控制器中,您將具有以下內容:

function search()
{
   if (!empty($this->data))
   {
     // .. do search, gather results
     $this->set('results', $results);
   }
}

$this->data僅在您輸入表單時填寫。

在您看來,您將編寫如下內容:

if (isset($results))
{
   // print table with results
}
else
{
   // show search form
}

如果您只需要一個函數/ URL,則更多是出於口味問題。 我個人更喜歡單獨的視圖,因為它減少了if / elses的數量。 同樣,一個搜索表單可以放在很多頁面上,而您只有一個搜索結果頁面。

我認為最好使用兩個單獨的視圖:

function search()
{
   if (!empty($this->data))
   {
     // .. do search, gather results
     $this->set('results', $results);
     return $this->render('search_results');
   }
   return $this->render('search_form');
}

然后創建兩個ctp文件search_results.ctp(帶有結果表)和search_form.ctp(帶有搜索表單)

您應該在視圖中使用盡可能少的邏輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM