【发布时间】:2018-10-19 20:04:18
【问题描述】:
我现在正在使用 CakePHP,我需要使用一个视图进行搜索,然后将数据发送到同一控制器上的另一个操作,这将触发具有该搜索结果的另一个视图。问题是,在搜索屏幕上,还有一个表格显示了一些相同型号的数据,我相信这是一个大问题。 所以现在,这就是我得到的:
public function busca() {
$emergency = TableRegistry::get('EmergencySheets');
$manufacturers = TableRegistry::get('Manufacturers');
$data = $this->request->is('get') ? $this->request->query : $this->request->getData();
$query = $emergency->find()
->select(['id', 'data_atualizacao_fabricante', 'tarja', 'manufacturer_id', 'nome_comercial'])
->where('EmergencySheets.data_atualizacao_fabricante')
->order(['data_atualizacao_fabricante'=>'DESC'])
->limit(7);
$manufacturer_query = $manufacturers->find()
->select(['id','nome'])
->where($query->manufacturer_id = 'id');
$manufacturer = $manufacturer_query->toArray();
$sheets = $query->toArray();
$this->set('manufacturers', $manufacturer);
$this->set('sheets', $sheets);
if($data){
return $this->redirect(['action' => 'ficha' , $data]);
}else{
return $this->redirect(['action' => 'busca404']);
}
}
我该如何处理? 谢谢大家!
编辑: 忘了提,但是 $data 变量在表单上总是空的,即使我在表单输入上输入了一些东西。这也是视图代码!
<section class="search-section">
<div class="container px-0">
<div class="search-wrapper">
<div class="search-title">
<h2><span>Quais produtos</span>você vai transportar?</h2>
<p><span>Pesquise pelos produtos no campo de busca</span>
ou clique nas letras ao lado.
</p>
</div>
<div class="search-bar">
<?=$this->Form->create()?>
<div class="ml-5 bar">
<input type="text" placeholder="Procure várias fichas de uma só vez" class="formcontrol tip"
data-toggle="tooltip" data-placement="top">
<span class="removeClick"><i class="fas fa-times-circle fa-2x"></i></span>
<button type="submit" class="btn"><i class="fa fa-search fa-2x"></i></button>
</div>
<?=$this->Form->end()?>
<div class="ml-5 alfabeto text-center">
<button href="#A">A</button> <button href="#B">B</button> <button href="#C">C</button> <button href="#D">D</button>
<button href="#E">E</button> <button href="#F">F</button> <button href="#G">G</button> <button href="#H">H</button>
<button href="#I">I</button> <button href="#J">J</button> <button href="#K">K</button> <button href="#L">L</button>
<button href="#M">M</button> <button href="#N">N</button> <button href="#O">O</button> <button href="#P">P</button>
<button href="#Q">Q</button> <button href="#R">R</button> <button href="#S">S</button> <button href="#T">T</button>
<button href="#U">U</button> <button href="#V">V</button> <button href="#W">W</button> <button href="#X">X</button>
<button href="#Y">Y</button> <button href="#Z">Z</button><button href="#0-9">0-9</button>
</div>
</div>
</div>
</div>
【问题讨论】:
-
有多种方法可以做到这一点。哪个最好取决于各种事情。您是否希望搜索表单在结果页面上仍然可见,例如进行优化或新搜索?您希望结果页成为人们可以收藏的内容吗?
-
嗨!我现在拥有的结果屏幕有另一个输入来搜索新内容,因此无需保持搜索表单可见。流程将是这样的:用户进入搜索屏幕>输入数据>数据作为参数传输到结果,在第二个屏幕上>结果显示>如果用户有另一个搜索,屏幕有输入,所以同样递归地调用动作。希望我没有搞砸解释它。 xD
标签: php cakephp cakephp-3.0