亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

對來自 db 的所有消息使用一種方法

對來自 db 的所有消息使用一種方法

PHP
開心每一天1111 2021-11-26 19:58:36
我有一個表,我想使用一種或多種方法從 db 中獲取所有結果。此方法可以將#hashtags 更改為鏈接,將 bbcode 更改為 html 標簽等。假設我有以下查詢:$query = Comments::orderBy('created_at', 'desc')->get();評論表有一個評論欄,用戶可以在其中使用表情符號 bbcode 等。此查詢返回一些結果。我如何在列上使用方法?如果我有一個結果很簡單:$query = Posts::find(1);$desc = myMethod($query->desc);
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

我假設你想格式化你的雄辯屬性?看看https://laravel.com/docs/5.8/eloquent-mutators


如果您不想將格式化的數據保存在 db 上。您可以通過定義訪問器來使用它。例如,請參見下文


// on your model you just need to create new methods 

// with `get` as prefix and `Attribute` as suffix


public function getBbcToHtmlAttribute() {

    return myMethod($query->desc);

}

請注意,get并且Attribute在您的方法名稱上是必需的(例如 getMyNewAccessorAttribute`


之后,您需要添加casts屬性。如果您已經有 casts 屬性,則只需將其添加到數組中,如果您沒有 casts 屬性,則需要定義它。


protected $casts = [

    'BbcToHtml'

];

然后您可以在模型實例的任何位置使用它。


$query = Posts::find(1);

$desc = $query->bbctohtml;


查看完整回答
反對 回復 2021-11-26
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

正如 MarkB 所說,您需要使用一個 mutator,創建一個可以接受任何輸入并為您的 bbcode 生成正確 html 代碼的輔助類。然后你會在你的模型上創建一個 mutator 并使用它而不是 bbcode 文本所在的字段。


查看完整回答
反對 回復 2021-11-26
  • 2 回答
  • 0 關注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號