Open mdk1980 opened 4 years ago
This foreach only used if you need send information or data to the view
if you need send data to the view use:
$this->View->render('note/index', $data)
if you no need send info to the view use:
$this->View->render('note/index')
'note/index' is a file in view folder $data is index array
$data = ["pizza" => true, "ingredients" = "cheese, tomato"];
foreach only run if $data != null application/core/view.php
foreach ($data as $key => $value) {
$this->{$key} = $value;
}
for each add you data array in element $this of Class View
Ej:
in controller/NoteController.php create new function:
public function hello(){
$this->View->render('note/hello', array(
'title' => 'Hello men')
);
}
in folder view/note create new file "hello.php"
put in this file "Hello.php"
<p><?= $this->title; ?></p>
open you browser and go to http://localhost/note/hello you see "Hello men"
in this array you send anything string number array or object, and you use in view $this->anything
In view.php (application/core/view.php) there is a foreach loop for data (an array) to be sent to the view when necessary. I can't find a reason for this code nor do I see where in view.php this information is used in any of its internal methods.
The code in question: class: view.php method: render( )
public function render($filename, $data = null) { if ($data) { foreach ($data as $key => $value) { $this->{$key} = $value; } }
This foreach loop information is not used apparently in the subsequent code in view.php that displays information to the user.
require Config::get('PATH_VIEW') . '_templates/header.php'; require Config::get('PATH_VIEW') . $filename . '.php'; require Config::get('PATH_VIEW') . '_templates/footer.php';
heres an example. In the LoginController (application/controller/) you have a method: index() that feeds information to the view.php
in the index() method in LoginController.php (path=application/controller/LoginController.php)
The 'else' part containing $data sends an array to the render method of view.php that appears to do nothing. Im sure I'm missing something simple here. Any help would be appreciated.