jonnybarnes.uk/app/Tag.php

75 lines
1.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tag extends Model
{
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'tags';
/**
* Define the relationship with tags.
*
* @var array
*/
public function notes()
{
return $this->belongsToMany('App\Note');
}
/**
* The bookmarks that belong to the tag.
*/
public function bookmarks()
{
return $this->belongsToMany('App\Bookmark');
}
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['deleted'];
/**
* We shall set a blacklist of non-modifiable model attributes.
*
* @var array
*/
protected $guarded = ['id'];
/**
* Normalize tags so theyre lowercase and fancy diatrics are removed.
*
* @param string
*/
public function setTagAttribute($value)
{
$this->attributes['tag'] = $this->normalizeTag($value);
}
/**
* This method actually normalizes a tag. That means lowercase-ing and
* removing fancy diatric characters.
*
* @param string
*/
public static function normalizeTag($tag)
{
return mb_strtolower(
preg_replace(
'/&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);/i',
'$1',
htmlentities($tag)
),
'UTF-8'
);
}
}