我坚持认为我的变量找不到的原因。
这是错误的图片
问题在于我设定了我的路线以及我认为需要的一切。
她我的bootstrap.php
Route::set('categorie', 'categorie/<item>', array('item' => '.*'))
->defaults(array(
'controller' => 'categorie',
'action' => 'index',
));
在我看来,这是一条正确的路线。
在这里你得到了controller
<?php
defined('SYSPATH') or die('No direct script access.');
class Controller_Categorie extends Controller_Base_Main {
public function action_index() {
/*
* Hier maakt hij de content template aan van een bepaalde view
* Ook worden hier de standaard views gezet
*/
$menuview = View::factory('menu');
$categorietree = View::factory('categorietree');
$footer = View::factory('footer');
$this->template->menu = $menuview;
$this->template->categorietree = $categorietree;
$this->template->footer = $footer;
/*
* Hier maak een een view aan waar ik 2 sql querys aan bind zodat de sql niet midden in de tekst hoeft
*/
$view = View::factory('categorie')
-> bind('categorieen', $cat)
-> bind('categorie_artikelen', $cat_artikelen);
/*
* categorieen sql uitvoeren
*/
$cat = ORM::factory('categorie')
->select('categorie_naam', 'categorie_inhoud')
->where('categorie_id','=',':CategorieID')
->find_all();
/*
* categorie_artikelen sql uitvoeren
*/
$cat_artikelen = ORM::factory('categorie')
->select('A.artikel_naam','A.artikel_id')
->join(array('artikelen', 'A'), 'LEFT OUTER')->on('AC.artikel_id', '=', 'A.artikel_id')
->join(array('categorieen', 'C'), 'LEFT OUTER')->on('AC.categorie_id', '=', 'C.categorie_id')
->where('AC.categorie_id', '=', ':CategorieID')
->order_by('A.artikel_naam');
$this->template->content = $view;
}
}
这是我的控制器。我不知道它有什么问题。
这是我的model
<?php
class Model_Categorie extends ORM
{
protected $_table_name = 'categorieen';
protected $_primary_key = 'categorie_id';
/*
* Veld categorienaam
* returns string
*/
public function getNaam()
{
return $this->categorie_naam;
}
/*
* Veld categorieinhoud
* returns string
*/
public function getInhoud()
{
return $this->categorie_inhoud;
}
}
我希望这也是正确的写作方式。
这是我用于view
controller
<div style="
padding: 15px;
background-color: white;
border: 1px solid #EEE;
">
<?php foreach($cat as $c): ?>
<h1><?php echo $c['categorie_naam']; ?></h1>
<p class="article"><?php echo nl2br($c['categorie_inhoud']); ?></p>
<?php endforeach; ?>
<table class="table table-condensed">
<?php foreach($cat_artikelen as $s) : ?>
<?php $letter = strtoupper($s['artikel_naam'][0]); ?>
<?php if ($letter != $prev_row): ?>
<tr>
<td><h4><b><?php echo $letter; ?></b></h4></td>
</tr>
<?php endif; ?>
<tr>
<td><a href="artikel.php?id=<?php echo $s['artikel_id']; ?>">
<i class="file-icon"></i> <?php echo $s['artikel_naam']; ?>
</a></td>
</tr>
<?php $prev_row = $letter; ?>
<?php endforeach; ?>
</table>
</div>
我希望有人可以帮助我,我真的陷入了困境。
答案 0 :(得分:1)
在您的控制器中,您需要在$view
下面移动$cat
作业。
/*
* categorieen sql uitvoeren
*/
$cat = ORM::factory('categorie')
->select('categorie_naam', 'categorie_inhoud')
->where('categorie_id','=',':CategorieID')
->find_all();
$view = View::factory('categorie')
->bind('categorieen', $cat)
->bind('categorie_artikelen', $cat_artikelen);
您要将变量设置为$categorieen
,因此在您的视图中,您需要将foreach更新为以下内容:
<?php foreach($categorieen as $c): ?>