第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel sortBy() 基于字符串值

Laravel sortBy() 基于字符串值

PHP
侃侃爾雅 2022-01-02 20:12:41
在我的 Laravel 應(yīng)用程序中,襯衫有多種尺寸:public function sizes(){    return $this->hasMany(\App\Size::class, 'size_id');}尺寸有一個稱為nameSM、MD、LG、XL、XXL 等的屬性。我想sortBy()在 eloquent 關(guān)系后附加 a ,以便尺寸始終按從 SM 到 XXL 的順序出現(xiàn)。是否可以根據(jù)字符串值編寫排序?我只是根據(jù)一個值是否大于另一個值來編寫它們,但這顯然不適用于這里。
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗 獲得超5個贊

結(jié)果可以使用字符串按字符串排序case:


 public function sizes(){

        return $this->hasMany(\App\Size::class, 'size_id')->orderByRaw(DB::raw("

        CASE name WHEN 'SM' THEN 1

               WHEN 'MD' THEN 2

               WHEN 'LG' THEN 4

               WHEN 'XL' THEN 5

               WHEN 'XXL' THEN 6

     ELSE 7 END ASC"));

    }

有更短的選項,但它們不適用于每個數(shù)據(jù)庫實現(xiàn):


Mariadb:https ://mariadb.com/kb/en/library/find_in_set/

Mysql:https : //dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_find-in-set

mysql


在find_in_setMySQL的應(yīng)該是這樣的:


return $this->hasMany(\App\Size::class, 'size_id')->orderByRaw(DB::raw("find_in_set(name,'SM','MD','LG','XL', 'XXL')"));

瑪麗亞數(shù)據(jù)庫


return $this->hasMany(\App\Size::class, 'size_id')->orderByRaw(DB::raw("find_in_set(name,'SM,MD,LG,XL,XXL')"));


查看完整回答
反對 回復(fù) 2022-01-02
  • 1 回答
  • 0 關(guān)注
  • 268 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號