How do you terminate a view early but maintain the formatting and layout.
e.g. if I simply call a view from the controller via :$this->render(‘index’);
My View file:
stuff
stuff
<?php
if ($stopHere=='yes'){
//want to terminate here
die; return; end(); //<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/huh.gif' class='bbc_emoticon' alt='???' />
}
?>
stuff 2 //should not be rendered if terminating early
Is there a way to do this WITHOUT wrapping the rest of the page in an else{}?
When i die; or Yii::app()->end(); it stops in the correct place but it does not render any of the layout, nav bars etc…
I basically want to check for a condition that rarely happens and if it does to simply terminate the view with a quick message. Would like it to maintain the layout of everything though.
It seems inefficient to create an entirely new view for this simple task.
To be honest, it seems inefficient to code all that logic in the view. It will introduce complexity, code smell, and makes for general debugging much harder. Let your controller make the decision and render the appropriate view.
<?php
if ($condition)
$this->render('generalProfile', array());
else
$this->render('advancedProfile', array());
?>
If you really want the logic in the view, I’d recommend breaking it into partialViews.
<?php
stuff
stuff
if (!$stop)
{
$this->renderPartial();
}
?>