[TYPO3-mvc] 404 redirect if requested object doesn't exist? show action

ralph germershausen 77 at kubai.de
Thu Apr 22 12:49:54 CEST 2010


hi jochen, now with full name..
[FE][pageNotFoundOnCHashError] = 1
solved my special problem. if i had an old link with chash bookmarked 
then i got the
Uncaught TYPO3 Exception
#1251730702: The value must be of type "Tx_Myext_Domain_Model_Articles", 
but was of type "NULL".
now it's redirecting.
isn't there any way to do try catch?

On 22.04.2010 12:10, Jochen Rau wrote:
> Hi ralph. (Is this you full name ;-) )
>
> On 21.04.10 14:14, ralph wrote:
>> hi. i wonder how i can redirect to a 404 page if the requested object
>> doesn't exist. like if a post from the blog ws deleted but a website
>> visitor calls an old bookmarked link.
>> have no clue how to deal with the exeption...
>> /**
>> * Action that displays one single post
>> *
>> * @param Tx_BlogExample_Domain_Model_Post $post The post to display
>> * @param Tx_BlogExample_Domain_Model_Comment $newComment A new comment
>> * @dontvalidate $newComment
>> * @return string The rendered view
>> */
>> public function showAction(Tx_BlogExample_Domain_Model_Post $post,
>> Tx_BlogExample_Domain_Model_Comment $newComment = NULL) {
>> $this->view->assign('post', $post);
>> $this->view->assign('newComment', $newComment);
>> }
>
> You might want to pass a status code along with $this->redirect(...). See:
>
> /**
> * Forwards the request to another action and / or controller.
> *
> * NOTE: This method only supports web requests and will thrown an exception
> * if used with other request types.
> *
> * @param string $actionName Name of the action to forward to
> * @param string $controllerName Unqualified object name of the
> controller to forward to. If not specified, the current controller is used.
> * @param string $extensionName Name of the extension containing the
> controller to forward to. If not specified, the current extension is
> assumed.
> * @param Tx_Extbase_MVC_Controller_Arguments $arguments Arguments to
> pass to the target action
> * @param integer $pageUid Target page uid. If NULL, the current page uid
> is used
> * @param integer $delay (optional) The delay in seconds. Default is no
> delay.
> * @param integer $statusCode (optional) The HTTP status code for the
> redirect. Default is "303 See Other"
> * @return void
> * @throws Tx_Extbase_MVC_Exception_UnsupportedRequestType If the request
> is not a web request
> * @throws Tx_Extbase_MVC_Exception_StopAction
> * @api
> */
> protected function redirect($actionName, $controllerName = NULL,
> $extensionName = NULL, array $arguments = NULL, $pageUid = NULL, $delay
> = 0, $statusCode = 303) {
> }
>
> Regards
> Jochen



More information about the TYPO3-project-typo3v4mvc mailing list