2015-05-20 83 views
1

我有模型實體和相關模型標記。後來作爲標籤,所以關係是由數據透視表服務如何檢查模型是否由特定標記標記

我想這很容易,但我迷路了。現在

public function tags() 
{ 
    return $this->belongsToMany('App\Models\Tag', 'entity_tags', 'entity_id', 'tag_id'); 
} 

,在我看來,我可以列出所有標籤: 它們被定義

{!! 
       join(', ', 
        array_map(function($o) { 
         return link_to_route('entities.profile', 
         $o->name, 
         [$o->id], 
         ['class' => 'ui blue tag button'] 
         );}, 
         $object->tags->all()) 
      ) !!} 

我的問題:

我如何在刀片可檢查實體對象是否具有特定能力?

在我的控制器SHOW方法

我得到一個單一的實體:

$object = Entity::find(34); 

,然後我想做某事,如果實體是由某種標籤

@if($object->capacities .... has tag= 3 
// do things here 
@endif 

THX

+0

$對象 - > tags- > all()什麼是$對象這裏是$ o? –

+0

編輯 - 謝謝。 – Peter

+0

什麼是容量? –

回答

2

您可以檢查如果實體具有一定的標籤是這樣的:

@if($entity->tags()->where('id', 3)->exists()) //.... has tag= 3 
    // do things here 
@endif 
2

標籤你可以添加一個公共方法到你的實體類,這將讓你檢查這個實體上的現有標籤:

<?php 
public function hasTag($tagToMatch) 
{ 
    foreach ($this->tags as $tag) 
    { 
     if ($tag->id == $tagToMatch) 
     return (true); 
    } 
    return (false); 
} 

這將允許您使用下面的代碼在你的觀點:

@if ($entity->hasTag(3)) 
    Do something 
@endif 
相關問題