Example #1
0
 public function test_makeTagArray()
 {
     $tagStrings = array('First Tag', '2nd Tag', 'Tag #3', 'tag #3', 'TAG #3');
     $first = TaggingUtil::makeTagArray($tagStrings);
     $second = TaggingUtil::makeTagArray(implode(', ', $tagStrings));
     $this->assertEquals($tagStrings, $first);
     $this->assertEquals($tagStrings, $second);
 }
Example #2
0
 public function testTagNames()
 {
     $stub = $this->randomStub();
     $str = 'First Tag, Second Tag, Tag #3';
     $arr = array('First Tag', 'Second Tag', 'Tag #3');
     $this->assertSame($arr, TaggingUtil::makeTagArray($str));
     $stub->tag($str);
     $this->assertSame($arr, $stub->tagNames());
 }
Example #3
0
 /**
  * Filter model to subset with the given tags
  *
  * @param $tagNames array|string
  */
 public function scopeWithAnyTag($query, $tagNames)
 {
     $tagNames = TaggingUtil::makeTagArray($tagNames);
     $normalizer = config('tagging.normalizer');
     $normalizer = empty($normalizer) ? '\\Conner\\Tagging\\TaggingUtil::slug' : $normalizer;
     $tagNames = array_map($normalizer, $tagNames);
     return $query->whereHas('tagged', function ($q) use($tagNames) {
         $q->whereIn('tag_slug', $tagNames);
     });
 }
Example #4
0
 /**
  * Filter model to subset with the given tags
  * 
  * @param $tagNames array|string
  */
 public function scopeWithAnyTag($query, $tagNames)
 {
     $tagNames = TaggingUtil::makeTagArray($tagNames);
     $tagNames = array_map('\\Conner\\Tagging\\TaggingUtil::slug', $tagNames);
     return $query->whereHas('tagged', function ($q) use($tagNames) {
         $q->whereIn('tag_slug', $tagNames);
     });
 }