Zend Framework, görünümü olmadan sorgu çalıştırmak?

4 Cevap php

Şu anda Zend Framework kullanarak bir web sitesi için küçük bir admin bölümü inşa ediyorum bu yüzden bir şey şeyler üzerinde biraz emin değilim sadece çerçevesini kullanarak benim ikinci kez budur. Örneğin ben kullanıcı umarım bir bağlantı ve yazı tıklayın olacak haberlerin için bir arşiv seçenek ben bu bir görünüme sahip olmadan çalıştırmak için nasıl çalışmak olamaz ancak arşivlenmiş olacak sahiptir?

bu benim denetleyicisi

public function archiveNewsAction()
{

	//die(var_dump($this->_request->getParam('news_id')));
	$oNews = new news();
	$this->_request->getParam('news_id');
	$oNews->archiveNewsArticle($news_id);
	//die(var_dump($oNews));
	$this->_redirect('/admin/list-all');
}

ve bu benim model

public function archiveNewsArticle($news_id)
{
	//die($news_id);
	$db = Zend_Registry::get('db');
	$sql = "UPDATE $this->_name SET live = '0' WHERE news_id = '$news_id' LIMIT 1";
	die($sql);
	$query = $db->query($sql);
	$row = $query->fetch();

	return $row;
}

Ben herhangi bir verebilirim herhangi bir yardım takdir ediyorum.

Teşekkürler

Sico

4 Cevap

Ben de çıktı istemiyorum ya ben XML veya JSON gibi diğer bazı çıktı istimal AJAX-sadece eylemleri çağrıları ile kullanabilirsiniz:

// Disable the main layout renderer
$this->_helper->layout->disableLayout();
// Do not even attempt to render a view
$this->_helper->viewRenderer->setNoRender(true);

Ne yapıyorsun hiçbir çıkış / non-HTML çıkışı varsa, bu yönlendirme hiçbir yükü yararı vardır.

Bir eylem görünüm oluşturmayı devre dışı bırakmak için (spesifik eylem koymak size tüm denetleyicisi için isterseniz init yönteminde koydum.):

$this->_helper->viewRenderer->setNoRender();

Eğer ZF düzeni bileşenini kullanıyorsanız da bu ekleyin:

$this->_helper->layout->disableLayout();

I could not figure out your code there. in your model you are calling die(). why? it will stop the execution. are you sure about that line? anyway, if you have a controller in Zend Framework and do not need any view, you can turn the view off by this line:

// code in your controller
$this->_helper->viewRenderer->setNoRender(true);
// the rest of the controller

now the controller will not search for a view script to show to the user. make sure you will call

$this->_redirect() 

controller işinin tüm yapılanlardan sonra.

Orignal Answer:

Sizin arama için:

$this->_redirect();

Otomatik olarak en kısa başlıkları yazılı olarak komut çıkacaktır (siz değil bunu yapılandırılmış sürece), böylece görünüm olarak adlandırılan veya işlenecek asla bir görünüm komut dosyası için gerek yok Redirector eylem yardımcısını çağırır.


Follow-up Answer:

Diğer "sayfa" için kullanıcı gönderme ve daha sonra geri yönlendirme olmadan eylem çağrısı için tekrar bir XMLHttpRequest (AJAX) çağrısı kullanmanız gerekir. Bu bağlantılar size ihtiyacınız olan bilgileri vermelidir:

http://developer.mozilla.org/en/AJAX
http://www.ibm.com/developerworks/xml/library/wa-ajaxintro1.html
http://www.oracle.com/technology/pub/articles/schalk-ajax.html

Ayrıca çok daha kolay XMLHttpRequest çapraz tarayıcı kullanarak yapmak bazı JS çerçeveler bir göz atın:

http://www.prototypejs.org/
http://mootools.net/

Zend Framework aslında daha kolay bulabilirsiniz Dojo JS çerçevesi için destek inşa etti:

http://framework.zend.com/manual/en/zend.dojo.html
http://www.dojotoolkit.org/