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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何獲得價(jià)值的第一個(gè)實(shí)例?

如何獲得價(jià)值的第一個(gè)實(shí)例?

PHP
喵喵時(shí)光機(jī) 2021-11-13 14:57:34
我想在我的博客應(yīng)用程序中構(gòu)建一個(gè)標(biāo)簽列表?我想選擇所有標(biāo)簽,如果該標(biāo)簽存在多次,只選擇一次?這就是我獲得所有標(biāo)簽的方式!如何讓每個(gè)標(biāo)簽只獲得一次?$tags = Tag::all();
查看完整描述

2 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

查詢


如果您只是在尋找標(biāo)簽名稱的不同列表,您可以組合distinct()方法和pluck()方法:


$tags = Tag::distinct()->pluck('name');

這將為您提供系統(tǒng)中所有唯一標(biāo)簽名稱的集合。


如果您確實(shí)需要擁有 Tag 模型實(shí)例,您可以嘗試兩件事。


首先,如果你有完全重復(fù)的標(biāo)簽行,你可以添加distinct()到你的標(biāo)簽查詢中(因?yàn)槟阈枰薷牟樵?,你需要?using 更改all()為get()(在此處閱讀更多):


$tags = Tag::distinct()->get();

其次,如果您的標(biāo)簽有其他不明確的信息(ID、時(shí)間戳等),那將不起作用。如果是這種情況,您需要使用子查詢來選擇您想要的標(biāo)簽:


$tags = Tag::whereIn('id', Tag::groupBy('name')->selectRaw('MAX(id)'))->get();

這將為您的唯一名稱集提供完全填充的 Tag 模型實(shí)例。


收藏


最后,如果您已經(jīng)有一個(gè) Tag 實(shí)例的集合,并且您想根據(jù)名稱獲得一個(gè)唯一的集合,您可以u(píng)nique在集合上使用該方法。


// somewhere

$tags = Tag::get();


// somewhere else

$tags = $tags->unique('name');

如果您還沒有該集合,請(qǐng)確保使用上述查詢構(gòu)建器方法之一。如果使用collection方式,則必須先構(gòu)建并水化所有Tag模型實(shí)例,然后再進(jìn)行唯一處理。您不希望獲取和水合 10000 個(gè)標(biāo)簽?zāi)P蛯?shí)例以最終得到 30 個(gè)獨(dú)特的標(biāo)簽,而此時(shí)您可以首先從數(shù)據(jù)庫中獲取這 30 個(gè)標(biāo)簽。


查看完整回答
反對(duì) 回復(fù) 2021-11-13
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以unique()集合上使用該方法,即:

$tags = Tag::all()->unique('name');

使用您的描述符字段而不是name.

distinct()方法最好與有限的字段選擇一起使用,例如:

DB::table('tags')->distinct()->get(['name']);

如果你使用distinct()on ModellikeTag::distinct()->get();你會(huì)得到所有的標(biāo)簽,因?yàn)樗鼈冇胁煌?code>ids,timestamps即使它們有相同的名稱或描述,因?yàn)樵谶@種情況下,選擇是在所有字段上。

使用模型,您必須像這樣限制返回的字段:

Tag::distinct()->get(['name']);


查看完整回答
反對(duì) 回復(fù) 2021-11-13
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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