What is the best way to check if the an element, a .ctp file exist in cakephp 3 ?
Something like this,
<?php
// if the elemet exist display it
$this->render('/Element/Trip/'.$current_step);
// else display another element instead
?>
Thanks :)
What is the best way to check if the an element, a .ctp file exist in cakephp 3 ?
Something like this,
<?php
// if the elemet exist display it
$this->render('/Element/Trip/'.$current_step);
// else display another element instead
?>
Thanks :)
file_exists() and use the Controller::$viewPath property.
But this is IMHO bad practice because you should know your elements and not rely on guessing. $current_step
implies there are some steps, guess they're finite. So instead of doing the check in the view check if the step is in your range of steps from 1 to 5 in the controller for example and if it's not throw a NotFoundException. The exception will return a 404, so you can check your response for that status code when handling the response in your client via JS.
public function my_action($step) {
if (!in_array($step, ['step1', 'step2', 'step3', 'done']) {
throw new \NotFoundException();
}
}