торт php, неопределенная переменная задача - PullRequest
2 голосов
/ 04 июля 2011

У меня есть страница контроллера, как это:

class UsersController extends AppController {
var $helpers = array ('Html','Form');
var $name = 'Users';

function index() {
    $this->set('view_users', $this->User->find('all'));
}
}

, тогда у меня есть другая страница контроллера, как это:

    class PostsController extends AppController {
var $helpers = array ('Html','Form');
var $name = 'Posts';

function index() {
    $this->set('edit_users', $this->Post->find('all'));
}
}

, тогда у меня есть индексный файл:

<?php foreach($view_users as $value): ?>
<p>id - <?php echo $value['User']['first']; ?></p>
<?php endforeach; ?>

<?php foreach($edit_users as $value): ?>
<p>id - <?php echo $value['Post']['first']; ?></p>
<?php endforeach; ?>

проблема, которую я получаю: Notice (8): Undefined variable: view_users [APP\views\posts\index.ctp, line 6]

очень странно, поскольку edit_users var работает.

В чем может быть проблема?спасибо

1 Ответ

3 голосов
/ 04 июля 2011

UsersController и PostsController - это разные контроллеры.Они используют разные представления и, хотя у них обоих есть действие index, они вызываются отдельно и используют разные представления.

Когда вы переходите к /users/index, оно вызывает действие index * 1008.* который устанавливает переменную $view_users.

Когда вы переходите к /posts/index, он вызывает index действие PostsController, которое устанавливает $edit_users.

Проблема: You PostsController login action не устанавливает значение для $view_users, поэтому переменная не определена.Предполагая, что ваша модель Post имеет связь с моделью User, вы сможете добавить это к действию PostsController index, чтобы решить вашу проблему:

$this->set('view_users', $this->Post->User->find('all'));

В качестве альтернативы выможет изменить представление для использования empty, чтобы проверить, была ли переменная задана первой:

if ( ! empty($view_users) )
  foreach ( $view_users as view_user )
  {
    // Do something useful.
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...