問題
我用user表關聯了userCount表
但是,此時使用FastAdmin后台的通用搜索,設置userCount表的搜索條件,會報錯
Unknown column 'user_count.sum_deposit' in 'where clause'
解決經過
通過看 F12的Network發現 ,sql語句中的錯誤
好像是自動把別名轉義為駝峰式的 `userCount`,但是我發起請求傳過去的是 `user_count`,
於是我嘗試將別名改過來,自己給他起別名
第一次
$this->belongsTo中的第四個參數本來是起別名的,但是發現給廢棄掉了
第二次
我使用->alias(['userCount' => 'user_count'])
但是報錯又變成了這樣
解決方案
將返回的數據的 `user_count` 改為 `userCount` ,這樣的話就一直使用駝峰式的表別名,使用后台通用搜索時傳遞過來的也就是 `userCount.sum_deposit` 了
1 $list = $this->model 2 ->with(['group', 'userCount']) 3 ->where($where) 4 ->order($sort, $order) 5 ->paginate($limit); 6 foreach ($list as $k => $v) { 7 $v->avatar = $v->avatar ? cdnurl($v->avatar, true) : letter_avatar($v->nickname); 8 $v->hidden(['password', 'salt']); 9 } 10 // 這段是改變返回值的`user_count`為`userCount` 11 $items = $list->items(); 12 foreach ($items as &$v) { 13 $v->userCount = $v->user_count; 14 unset($v->user_count); 15 }