Sadece bu gibi, o sümüklü böcek ile bir yayın daha, slug
adlı bir sütunda, benim veritabanı tablosundaki sümüklü böcek saklamak:
public function view($slug)
{
$query = $this->db->get_where('posts', array('slug' => $slug), 1);
// Fetch the post row, display the post view, etc...
}
Ayrıca kolayca sonrası başlığından bir kurşunu türetmek için,
// Use dashes to separate words;
// third param is true to change all letters to lowercase
$slug = url_title($title, 'dash', true);
küçük bir ikramiye: belirsiz değil yani her sonrası benzersiz bir sümüklü böcek bulunmasını sağlar slug
sütuna benzersiz bir anahtar kısıtlamasını uygulamak isteyebilirler sonrası CodeIgniter sho sadece URL yardımcısı url_title()
kullanmak uld bak. Tabii ki, muhtemelen mesajlarınızı ilk etapta benzersiz başlıklar halinde vermelisiniz, ancak bunu yerine koyarak , kuralı zorlar ve uygulamanızın hata yapmasını engeller.
tam yoludur Bunu yapardım, ancak bu tür URL'lerle performans konusunda biraz endişeliyim. Stackoverflow:/questions/{integer}/{slug} adresindeki URL'ler gibi bir URL’niz olduğunu varsayalım. Bu, URL’nin ilk türüyle, yalnızca kullanabildiğiniz için,/questions/{slug} biçiminden biraz daha verimli değil. Daha hızlı arama için veritabanındaki birincil anahtar. Diğer URL ile, kesinlikle yavaş olan bir dize karşılaştırması yapmak zorunda kalacaksınız. – EsTeGe
@EsTeGe: Doğru. Performans bir endişe ise, sorgulama için hızlı indeksleri/anahtarları kullanmaya devam etmek isteyeceksiniz. Ancak kritik değilse veya veritabanındaki yükü hafifletmek için bazı makul önbelleğe alma işlemlerine sahipseniz, bunun yerine sümüklü böceklerle gidebilirsiniz. – BoltClock
Oh, kod yazıcının yerleşik önbelleğe alma özelliğini düşünmedim. Bu, URL’yi temel alır. Bu, endişelenmeniz gereken bir sorundur. – EsTeGe