1 回答
TA贡献1865条经验 获得超7个赞
如评论中所述,您将数据发送为orderId
,但访问它为order_id
,并且您认为您还使用了错误的控制器名称。
您很可能在生成 URL 时没有收到错误,因为您正在使用fallbacks或手动捕获所有路由,即类似 的路由/:controller/:action
,它将匹配任何控制器/操作。向不存在的端点发出请求时将引发错误,但您尚未为 AJAX 调用定义错误/失败处理程序,因此错误正在被吞没,您的 CakePHP 错误中仍然应该有一些东西日志。
话虽如此,您真的不应该在每行发出额外的查询(即在valueField
回调中发出查询),而是在 SQL 级别进行过滤,例如使用CASE
表达式,或包含Products
关联,以便您拥有所需的所有数据用于在 PHP 级别进行过滤,应该很简单:
$items = $this->ItemsDeliveryNotes->Orders->ItemOrders
->find('list', [
'keyField' => 'id',
'valueField' => function (\Cake\Datasource\EntityInterface $row) {
if ($row->has('product')) {
return $row->product->name . ' (' . $row->product->customer_code . ')';
}
return $row->description;
}
])
->contain('Products')
->where([
'order_id' => $id
]);
- 1 回答
- 0 关注
- 120 浏览
添加回答
举报