2010-03-16 3 views

ответ

-1

Вы хотите установить значение метки? Это делается в представлении, но, конечно, значение может исходить от контроллера/модели. Как это:

echo $this->Form->input('title', array(
        'label' => $titleLabel, 
        )); 

вы также можете отключить метку элемента:

echo $this->Form->input('title', array(
        'label' => null, 
        )); 
2

Пожалуйста, убедитесь, что я правильно понял это, вы хотите установить метку поля в модели, а не использовать хелпер формы?

Это нарушает базовую архитектуру MVC. Хотя Cake является гибким в некоторых вещах, я не думаю, что это возможный вариант. Я также не понимаю, почему вы хотите это сделать - есть ли причина, по которой вы не хотите использовать свойство label в помощнике формы?

Основная проблема заключается в том, что метка для формы является частью уровня представления, а модель представляет данные. Таким образом, невозможно (и я не могу думать о ситуации, когда это имеет смысл ...), чтобы назначить метку в поле данных, которое затем будет использоваться всякий раз, когда это поле будет выводиться.

Если я не понял ваш вопрос, уточните пожалуйста.

-1

я предлагаю U непосредственно использовать помощника u want .. bcos $ form-input() создает div .. labels.

Мне лично пришлось отсеять это на каждой строке

с непосредственным помощником как

$ form-> текст() $ форма-> TextArea() $ форма-> выберите()

и может держать код намного чище.

Примечание: $ form-> Вводится экономит время при использовании права ...

1

Что я делаю, это создание конвенции в моих моделях. Я добавил публичный атрибут под названием «fieldLabels» ко всем моделям, чтобы назначать текстовые метки по умолчанию для общих форм.

Пример:

class MyModel extends AppModel { 
    // ... 
    public $fieldLabels = array(
     'username' => 'User name', 
     'email' => 'e-mail address', 
     'phone' => 'Phone No.', 
    ); 
// .... 
} 

Затем я перехожу вокруг этикетки с точки зрения и использовать дополнительный параметр для ввода, так как sibidiba сказал:

echo $this->Form->input('title', array(
         'label' => $fieldLabels['title'] . ': ', 
       )); 

В случае, если я нужны специальные этикетки, я В качестве исключения обрабатывается каждый случай. Конечно, если вы хотите интернационализации, это совсем другая тема.

Смежные вопросы