1 回答

TA貢獻1865條經驗 獲得超7個贊
如評論中所述,您將數(shù)據(jù)發(fā)送為orderId
,但訪問它為order_id
,并且您認為您還使用了錯誤的控制器名稱。
您很可能在生成 URL 時沒有收到錯誤,因為您正在使用fallbacks或手動捕獲所有路由,即類似 的路由/:controller/:action
,它將匹配任何控制器/操作。向不存在的端點發(fā)出請求時將引發(fā)錯誤,但您尚未為 AJAX 調用定義錯誤/失敗處理程序,因此錯誤正在被吞沒,您的 CakePHP 錯誤中仍然應該有一些東西日志。
話雖如此,您真的不應該在每行發(fā)出額外的查詢(即在valueField
回調中發(fā)出查詢),而是在 SQL 級別進行過濾,例如使用CASE
表達式,或包含Products
關聯(lián),以便您擁有所需的所有數(shù)據(jù)用于在 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 關注
- 147 瀏覽
添加回答
舉報