问题描述
朋友,我正在显示用户的个人资料以及他注册的产品。我的关系是正确的。我可以正常列出所有产品以及用户信息。但是我在用户视图中的产品搜索字段不起作用。
这是我的代码detail_user.ctp
//user information only above. (Address,Telephone,etc.)
.
.
.
<h2 class="bd-title mt-2" id="content">Products gallery</h2>
<div class="card mt-2 mb-2">
<div class="card-header">
<?= $this->Form->create('',['type' => 'get']); ?>
<div class="input-group">
<?= $this->Form->control('keyword',array('class' => 'form-control','name'=> 'search','label' => false,'required' => true,));?>
<div class="input-group-append">
<?= $this->Form->button(__('Search')); ?>
</div>
</div>
</div>
<div class="table-responsive">
<table class="table table-hover">
<tbody>
<?PHP foreach ($user->products as $product): ?>
<td>
<p class="title mb-0"><?= h($product->name) ?> </p>
<var class="price text-muted">R$ <?= number_format($product->price);?></var>
</td>
<td> <br></td>
<td width="130">
<?= $this->Html->link(__('Open'),['controller' => 'Produtos','action' => 'details_product','prefix' => false,$product->slug],array('class' => 'btn btn-primary')) ?>
</td>
</tr>
<?PHP endforeach; ?>
</tbody></table>
</div> <!-- table-responsive .end// -->
</article>
我的方法是这样的:
public function detailUser($slug)
{
$keyword = $this->request->getQuery('keyword');
$query = $this->Users
->find()
->matching('Products',function(\Cake\ORM\Query $q) {
return $q->where(['name LIKE' => ('%'. $this->request->getQuery('keyword') . '%')]);
});
$usuario = $this->Users
->findBySlug($slug)
->contain(['Products','Groups'])
->firstOrFail();
$query = $this->Users->find('all');
$this->set('user',$user);
$this->set('query',$this->paginate());
}
我很难解决这种方法。此刻,当我输入产品名称时,URL会更改,但不会搜索产品。
我查阅了生成的sql,一切都正确,但是它没有过滤在搜索字段中输入的单词,也没有给出错误。
我感谢任何评论!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)