我有一个愚蠢的问题...为什么我传递e变量来查看浏览器返回我 未定义的变量: ?我只是克隆了我的第一种方法(对于广告,同样的程序)。但是由于广告有效,并且类别不起作用,这太愚蠢了,为什么呢? 我展示了我的小应用程序
我的控制员:
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Ads extends Controller_Template {
public $template = 'template';
// function indes Ads
public function action_index()
{
$ads = ORM::factory('ads')->find_all(); // load all object inside ads table
$view = new View('ads/index'); // load the view/ads/index.php
$view->set('ads', $ads); // set 'ads' object to view
$this->template->set('content', $view);
}
// view single ads
public function action_single()
{
$id = $this->request->param('id');
$record = ORM::factory('ads')
->where('id_ads', '=', $id)
->find();
$view = new View('ads/single');
$view->set('ads', $record);
$this->template->set('content', $view);
}
public function action_category()
{
$category = ORM::factory('category')->find_all();
$view = new View('ads/index');
$view->set('category', $category);
$this->template->set('content', $view);
}
} // End Ads
我的兴趣观点(ads / index.php)
<?php foreach ($ads as $obj) : ?>
<h3><?php echo HTML::anchor('/ads/single/'.$obj->id_ads, $obj->title_ads); ?></h3>
<p><?php echo $obj->description_ads; ?></p>
<p>Autore: <?php echo $obj->author_ads; ?> || creato il <?php echo $obj->date_ads; ?> || categoria: <?php echo HTML::anchor('#', $obj->category->category_name); ?></p>
<?php endforeach; ?>
<?php foreach ($category as $obj) : ?>
<?php echo $obj->id; ?>
<?php endforeach; ?>
浏览器中的错误
ErrorException [ Notice ]: Undefined variable: category
为什么只针对类别?而不是广告?
答案 0 :(得分:0)
只有一个动作函数可以运行
这意味着在action_index()
$ads
变量正在设置但不是$category
。
在action_category()
中,$ category变量正在设置,但不是$ads
。
如果您只希望使用这些变量,则应创建另一个ads / category.php视图并在action_category()
函数中使用该视图,并删除该视图中对$ads
的引用。< / p>
此外,您似乎期望action_category()
函数正在运行,根据您看到的错误,它实际上正在运行action_index()
。检查您的路线以找出原因。