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); }
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()); }
/** * 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); }); }
/** * 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); }); }