Способы использования массива в cakephp - PullRequest
0 голосов
/ 18 декабря 2018

Здравствуйте. У меня немного времени на то, чтобы понять, как использовать массивы в cakephp.Прямо сейчас у меня есть представление с 2 столбцами, active и startYear.мне нужно захватить начальные годы для всех столбцов в представлении и шо у меня есть этот код.

public function initialize(array $config)
{
    $this->setTable('odb.SchoolYear');   

}

контроллер

public function index()
{
    $deleteTable = $this->loadModel('DeletedTranscripts');

    $this->$deleteTable->find('all', array(
        'conditions' => array(
            'field' => 500,
            'status' => 'Confirmed'
        ),
        'order' => 'ASC'
    ));

    $this->set('startYear',$deleteTable );
}

как только я получу массив захвачен и помещен вДопустим, startYear может ввести подобное утверждение в мой выпадающий список, чтобы заполнить его?

    <div class="dropdown-menu">
      <a class="dropdown-item" href="#"><?= $delete->startYear; ?></a>
  </div>

Я довольно долго искал ответы, любая помощь была бы потрясающей.

1 Ответ

0 голосов
/ 19 декабря 2018

Пара вещей:

Загрузка таблиц в CakePHP

Для этой строки:

$deleteTable = $this->loadModel('DeletedTranscripts');

Хотя вы можете получить таблицу таким образом, на самом деле нет причин дляустановите возврат loadModel в переменную.Эта функция устанавливает свойство с тем же именем на контроллере, которое почти правильно используется в следующей строке.Просто используйте:

$this->loadModel('DeletedTranscripts');

Тогда вы можете начать ссылаться на эту таблицу с помощью:

$this->DeletedTranscripts

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

Получение результатов запроса

Далее, вы близки к части запроса, вы можете начать создавать новый запрос с помощью:

 $this->DeletedTranscripts->find('all', array(
        'conditions' => array(
            'field' => 500,
            'status' => 'Confirmed'
        ),
        'order' => 'ASC'
    ));

Но обратите внимание, что функция find() не сразу возвращает результаты - она ​​просто создает запрос.Вы можете продолжить изменять этот запрос с помощью дополнительных функций (например, ->where() или ->contain()).

Чтобы получить результаты запроса, вам нужно вызвать что-то вроде toArray(), чтобы получить все результаты или first()чтобы получить один, например, так:

$deletedTranscriptsList = $this->DeletedTranscripts->find('all', array(
    'conditions' => array(
        'field' => 500,
        'status' => 'Confirmed'
    ),
    'order' => 'ASC'
))->toArray();

Отправка данных в представление

Теперь, когда у вас есть список, установите его так, чтобы он был доступен в вашем представлении в виде массива:

$this->set('startYear', $deletedTranscriptsList );

См. Также:

Я также заметил, что у вас недавно было несколько других связанных вопросов - документы CakePHP действительно хороши в целом, они довольно хорошо охватывают эти системы.Я бы посоветовал вам прочитать как можно больше на Controller's & View.

Я бы также рекомендовал пройтись по CMS Tutorial , если вы еще этого не сделали,раздел, посвященный контроллерам, может помочь объяснить ряд понятий CakePHP, связанных здесь, и имеет несколько отличных рабочих примеров.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...