FastAdmin a表用with關聯b表后,再使用后台通用搜索(加入b表的搜索條件)報錯


問題

我用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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM