Временное модельное поле в Кохана 2 - PullRequest
0 голосов
/ 26 декабря 2010

У меня вопрос о кохане 2:

Мне нужно создать временное поле для каждой функции find (), которое называется 'slug'.В этом поле будет динамически создаваемый «SEO-дружественный» URL-адрес текущей записи.

Например, адрес сайта - www.domain.com, и я хочу просмотреть сообщение с идентификатором 6 под названием «Это примерзаглавие".Желаемый слаг будет: 1-this-is-an-example-title

Я не хочу генерировать слаг непосредственно в поле зрения, повторяя $post->id . '-' . url::title($post->title).Чего я хочу добиться, так это способности отображать динамически создаваемую переменную $post->slug, которая не будет представлена ​​в базе данных, а будет просто сгенерирована в модели.

Надеюсь, вы меня хорошо понимаете?Можете ли вы дать мне какие-либо идеи или примеры кода, пожалуйста?

Большое спасибо, Майк

1 Ответ

1 голос
/ 26 декабря 2010
protected $_slug = NULL;

public function __get($name)
{
   if ($name == 'slug')
   {
      if ($this->_loaded AND $this->_slug === NULL )
      {
         $this->_slug = $this->pk().'-'.url::title($this->title);
      }
      return $this->_slug;
   }
   return parent::__get($name);
}
...