Итерации по всем ребрам были бы дорогостоящими, когда у нас большие графы. Я бы порекомендовал найти преемников и предшественников определенного узла, а затем получить информацию о соответствующем ребре.
[G.get_edge_data('a',neigh)['attr'] for neigh in G.successors('a')] + \
[-G.get_edge_data(neigh,'a')['attr'] for neigh in G.predecessors('a')]
Эти действия являются образцовым агностиком, так может быть помещен в Ваш app/app_controller.php файл
<?php
class AppController extends Controller {
function index() {
$this->set(Inflector::variable($this->name), $this->{$this->modelClass}->findAll());
$this->pageTitle = 'All '.Inflector::humanize($this->name);
}
function view($id = null) {
$data = $this->{$this->modelClass}->findById($id);
$this->set(Inflector::variable($this->modelClass), $data);
$this->pageTitle = $data[$this->modelClass][$this->{$this->modelClass}->displayField];
}
}
?>
Указание на Ваш браузер к / гитарам вызовет Ваше индексное действие контроллера гитар, которое не существует так тот в AppController (который GuitarsController наследовал от), будет выполнен. То же для действия представления. Это будет также работать на Ваш DrumsController, KeyboardsController и т.д. и т.д.
Можно установить это в контроллере:
function view($id = null) {
$guitar = $this->Guitar->read(null, $id);
$this->set('guitar', $guitar);
$this->pageTitle = $guitar['Guitar']['name'];
}
Или в представлении:
<? $this->pageTitle = $guitar['Guitar']['name']; ?>
Набор значений в представлении переопределит любое значение, которое, возможно, было уже установлено в контроллере.
Для безопасности необходимо удостовериться, что расположение / представление, которое отображает pageTitle html - кодирует эти произвольные данные для предотвращения инжекционных нападений и поврежденного HTML
<?php echo h( $title_for_layout ); ?>
В ответ на Ваш собственный ответ о oo парадигме. Как это:
function view($id) {
$this->Guitar->id = $id;
$this->Guitar->read();
$this->pageTitle = $this->Guitar->data['Guitar']['name'];
$this->set('data', $this->Guitar->data);
}
Между прочим, необходимо проверить, установлен ли идентификатор и допустим и т.д., так как это - ввод данных пользователем URL.
$this->pageTitle = $this->Guitar->Name;
Это должно войти в Представление, хотя, я не делаю PHP или cakePHP, но это - что-то, что представление должно сделать, не контроллер.
"но я хочу сделать что-то немного больше, чем основные шоу справки онлайн".
Это - не всегда протирание? Так много документации приспособлено к абсолютному минимуму, что она действительно не помогает многому. Можно завершить многие доступные учебные руководства, но как только Вы берете 1, сходят с резервирования, беспорядок начинается. Ну, это - или абсолютный минимум или про максимум разработчика, но редко поражает ту зону наилучшего восприятия простоты, ясности и глубины.
Я в настоящее время переписываю некоторую документацию Платформы Зенда для своего собственного использования просто, таким образом, я могу сгладить несоответствия, разъясниться, замял предположения, и достигните ядро, "лучшая практика" способ понять это. Моя молитва: Простота, ясность, глубина. Простота, ясность, глубина.
А-ч, ни один - очевидный ответ следующие...
$this->pageTitle = $this->viewVars['guitar']['Guitar']['Name'];
Я нашел это путем размещения следующего кода в контроллер (была съемка общим планом, которая окупилась, чтобы быть честной),
echo "<pre>"; print_r($this);echo "</pre>";
Благодаря всем те, которые пытались помочь.
echo "<pre>"; print_r($this);echo "</pre>";
как насчет
pr( $this );