ajax eylemleriniz için ayrı bir denetleyiciye ihtiyacınız var. İstek türünü tanımlamak için Kohana'nın istek nesnesinden yararlanabilirsiniz. Bu şu şekilde yapılabilir:
<?php
class Controller_Test extends Controller_Template {
/**
* @var View Template container
*/
protected $template = 'template';
/**
* @var View Content to render
*/
protected $content = 'some/content/view';
// Inherited from parent class
protected $auto_template_render = TRUE;
public function before()
{
parent::before();
if ($this->request->is_ajax() OR !$this->request->is_initial()) {
$this->auto_template_render = FALSE;
}
}
public function after()
{
if ($this->auto_template_render == FALSE) {
// We have ajax or internal request here
$this->template = $this->content;
} else {
// We have regular http request for a page
$this->template = View::factory($this->template)
->set('content', $this->content);
}
// Call parent method
parent::after();
}
}
örnek, arşivlemek istediğiniz ne geliştirilebilir çok basit olmasına rağmen. Temelde ihtiyacım olan şeyleri yapmak için kendi Controller_Template
'u yazmayı bitirdim. Ayrıca, URL'leriniz için biçimlendirme parametresi eklemeyi düşünebilirsiniz, böylece .html
URL'leri verilerin düzenli html gösterimini döndürdüler ve .json
URL'leri aynısını yaptı, ancak json biçiminde. Daha fazla bilgi için (ve büyük olasılıkla fikirler) bkz. kerkness unofficial Kohana wiki
bu iyi .. Ben kesinlikle bundan faydalanacağım ... teşekkürler .. Neyse, tüm toplum için yararlı olacak daha fazla öneri bekliyorum .. – Shameer