php - 使用 CakePHP 在另一个视图上显示搜索结果
问题描述
我现在正在使用 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>
解决方案
请考虑您将代码放在以下行之后:
return $this->redirect(['action' => 'busca404']);
}
在这种情况下,所有这些行在任何情况下都不会执行,因为无论请求是否为“get”,您都在强制重定向。所以所有的代码都不会被执行。
我认为您需要定义重定向到“ficha”操作的条件以及哪些条件保留在“busca”操作中
推荐阅读
- java - 是否有谷歌 api 来验证 gmail 是否在 java 中有效?
- cordova - Cordova 后退按钮 - 防止后退按钮在没有确认的情况下返回上一页
- ruby-on-rails - 无法构建 sqlite3 原生扩展
- powershell - 获取 Azure AD 应用程序详细信息时 Get-AzureADApplication 引发错误
- base64 - 将 google sheet 行编码为 base64 字符串
- vuejs2 - 在 nativescript-vue 应用程序中存储一个值
- swift - 快速更改帧速率后保存avplayer视频
- spring-boot - 在SpringBoot中,当我可以在Catch中编写代码时,为什么我们需要单独的注解@ExceptionHandler注解?
- php - mySQL 只选择有多个 ID 匹配的一行
- regex - 匹配字符串中可选单词前后的内容