私はこのLaracastチュートリアル(https://laracasts.com/series/lets-build-a-forum-with-laravel/episodes/56)に従って、本文の中に「言及」を得ました。しかし、私は今スレッドのすべてのデータを取得したいので、すべての投稿と関連するすべてのユーザー、具体的に言及したユーザーが必要です。ポストでユーザーの言葉を取得する
私はこのようなすべての記事を取得しています:
public function get(Thread $thread) {
return $thread->with(['posts'=>function($query) { return $query->with('user'); }]);
}
これは私には、このようなデータを返します。
{
"id": 1,
"posts": [
{
"id": 1,
"user_id": 13,
"body": "Hi @14 and @15",
"user": {
"id": 13,
"name": "Joe"
}
},
{
"id": 2,
"user_id": 14,
"body": "Hi back at you"
"user": {
"id": 14,
"name": "Bob"
}
}
]
}
私たちは、私は著者のユーザーのちょうど罰金を取得参照してください。しかし、私もmentioendユーザーが必要です。
ストアプロセス中に最初のものが表示されますが、@string
を@USER_ID
に変換しました。
preg_match_all('/\@[^\s\.]+)/', $post->body, $matches);
とUSER_IDとrepalced。
ここでフェッチすると、投稿からuser_idを抽出し、結果のデータにこれらのuser
を添付します。これは可能ですか?
私の目標:
{
"id": 1,
"posts": [
{
"id": 1,
"user_id": 13,
"body": "Hi @14 and @15",
"users": [
{
"id": 13,
"name": "Joe"
},
{
"id": 14,
"name": "Bob"
},
{
"id": 15,
"name": "Ryan"
}
},
{
"id": 2,
"user_id": 14,
"body": "Hi back at you",
}
]
}
各身体上の正規表現を実行し、あまりにも言及したユーザーを選択する方法はありますか?
本当にありがとうと思います。私はこのソリューションを使用して、関係を設定しています。このような素晴らしいアイデアに感謝します。通知も含めてください! :)偶然にも、上記のようにクエリのデータを補う方法を追加することができます。しかし、解決策を受け入れました。 :) – Blagoh
そのような意味ですか?更新しました。 – nmfzone
ありがとう@nmfzone私は関係にそれらを再編することは間違いなく行く方法だと思います。 – Blagoh