CakePHP - Как я устанавливаю название страницы на название товара?

Итерации по всем ребрам были бы дорогостоящими, когда у нас большие графы. Я бы порекомендовал найти преемников и предшественников определенного узла, а затем получить информацию о соответствующем ребре.

[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')]  
5
задан George Stocker 19 December 2008 в 16:53
поделиться

8 ответов

Эти действия являются образцовым агностиком, так может быть помещен в Ваш 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 и т.д. и т.д.

5
ответ дан 13 December 2019 в 19:38
поделиться

Можно установить это в контроллере:

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 ); ?>
4
ответ дан 13 December 2019 в 19:38
поделиться

В ответ на Ваш собственный ответ о 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.

1
ответ дан 13 December 2019 в 19:38
поделиться
$this->pageTitle = $this->Guitar->Name;

Это должно войти в Представление, хотя, я не делаю PHP или cakePHP, но это - что-то, что представление должно сделать, не контроллер.

0
ответ дан 13 December 2019 в 19:38
поделиться

Это должно войти в контроллер. Посмотрите это

0
ответ дан 13 December 2019 в 19:38
поделиться

"но я хочу сделать что-то немного больше, чем основные шоу справки онлайн".

Это - не всегда протирание? Так много документации приспособлено к абсолютному минимуму, что она действительно не помогает многому. Можно завершить многие доступные учебные руководства, но как только Вы берете 1, сходят с резервирования, беспорядок начинается. Ну, это - или абсолютный минимум или про максимум разработчика, но редко поражает ту зону наилучшего восприятия простоты, ясности и глубины.

Я в настоящее время переписываю некоторую документацию Платформы Зенда для своего собственного использования просто, таким образом, я могу сгладить несоответствия, разъясниться, замял предположения, и достигните ядро, "лучшая практика" способ понять это. Моя молитва: Простота, ясность, глубина. Простота, ясность, глубина.

0
ответ дан 13 December 2019 в 19:38
поделиться

А-ч, ни один - очевидный ответ следующие...

$this->pageTitle = $this->viewVars['guitar']['Guitar']['Name'];

Я нашел это путем размещения следующего кода в контроллер (была съемка общим планом, которая окупилась, чтобы быть честной),

echo "<pre>"; print_r($this);echo "</pre>";

Благодаря всем те, которые пытались помочь.

0
ответ дан 13 December 2019 в 19:38
поделиться
echo "<pre>"; print_r($this);echo "</pre>";

как насчет

pr( $this );
0
ответ дан 13 December 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: