2016-12-28 12 views
1

投稿には多くのタグが定義されています。 私はそれぞれの記事を循環させて、特定の名前が含まれていればタグをチェックしようとしています - 例えば 'car'。サイクル私は、タグ名を確認するにはどうすればよいLaravel投稿内のタグを見つける

Collection {#346 ▼ 
#items: array:2 [▼ 
0 => Tag {#353 ▼ 
    #fillable: array:1 [▶] 
    #connection: null 
    #table: null 
    #primaryKey: "id" 
    #perPage: 15 
    +incrementing: true 
    +timestamps: true 
    #attributes: array:4 [▶] 
    #original: array:8 [▶] 
    #relations: array:1 [▶] 
    #hidden: [] 
    #visible: [] 
    #appends: [] 
    #guarded: array:1 [▶] 
    #dates: [] 
    #dateFormat: null 
    #casts: [] 
    #touches: [] 
    #observables: [] 
    #with: [] 
    #morphClass: null 
    +exists: true 
    +wasRecentlyCreated: false 
} 
1 => Tag {#352 ▶} 
] 
} 

$post->tags 

リターン私?

+0

これは 'dd($ post-> tags-> toarray())'です。これは結果を配列に表示します(出力を視覚化しやすくするためです)。 @mannilが書いたように、各要素を繰り返し処理するためにforeachを実行するだけです。 –

+0

チップをありがとうございます。配列をうまく返します。 – Maximi

答えて

1

foreachループを使用して、すべてのタグを反復処理できます。私はあなたのTagオブジェクトがあなたが参照できる名前属性を持っていると仮定します。コード例は次のようになります。

foreach($post->tags as $tag){ 
    if($tag->name == "THENAMEYOUARELOOKINGFOR"){ 
     //do sth. here 
    } 
} 

あなたがin_arrayメソッドを使用したい場合のみ、タグ名を含む配列が存在することになるように、あなたのコレクションを変換することができます。

$nameArray = $posts->tags->pluck('name')->all(); 
//Now you can use in_array 
if(in_array("YOURSTRING", $nameArray)){ 
    //do sth. 
} 
+0

私はin_array()のような関数を探しています。これが簡単な方法でできないのであれば、私は驚いています。 – Maximi

+0

@ Maximi in_array()メソッドを使用することはできますが、少し複雑になります。私は私の答えを更新しています;) – manniL

+0

さて、私はそれをよく見る。しかし、どちらが速いのですか? – Maximi

関連する問題