foreach теряет значения объекта - PullRequest
0 голосов
/ 06 января 2020

Так что это совершенно глупый вопрос для новичка, но я потратил так много времени, просто исследуя происходящее, и у меня совершенно нет идей.

Я пытаюсь получить частные значения объекта, называемого «Ячейка». вне CellLineRepository. Геттеры работают, они привыкают в другом месте.

Вот так выглядит мой foreach:

$all_cell_lines = CellLineRepository::findAll();
$allcells = [];
foreach ($all_cell_lines as $cell) {
    $allcells[] = [
        "CellID" => $cell->getId(),
        "iPSC-ID" => $cell->getIpscId(),
        "Lab-ID" => $cell->getLabId(),
        "altID" => $cell->getAltId(),
        "project" => $cell->getProject()
    ];
    var_dump($allcells);
}

A var_dump() из $all_cell_lines выглядит хорошо, но я Я теряю "iPS C -ID" и "Lab-ID".

object(CellLine)#9 (79) {
[
  "id": "CellLine":private
]=>
string(1) "1"
[
  "created_date": "CellLine":private
]=>
string(10) "2019-05-22"
[
  "created_by": "CellLine":private
]=>
string(3) "314"
[
  "last_modified_date": "CellLine":private
]=>
string(10) "2019-11-22"
[
  "last_modified_by": "CellLine":private
]=>
string(3) "301"
[
  "tab_type": "CellLine":private
]=>
string(8) "internal"
[
  "lab_id": "CellLine":private
]=>
string(5) "xxx"
[
  "alt_id": "CellLine":private
]=>
string(7) "xxx"
[
  "provider": "CellLine":private
]=>
string(36) "xxx"

A var_dump() из $allcells выглядит так:

    array(1) {
  [
    0
  ]=>
  array(5) {
    [
      "CellID"
    ]=>
    string(1) "1"
    [
      "iPSC-ID"
    ]=>
    string(0) ""
    [
      "Lab-ID"
    ]=>
    string(0) ""
    [
      "altID"
    ]=>
    string(7) "xxx"
    [
      "project"
    ]=>
    string(3) "xxx"
  }
}

Кто-то есть подсказка?

Ответы [ 2 ]

0 голосов
/ 06 января 2020

Ух ты, это было безумие. Я использовал модули других разработчиков, но они проверяли свои права в ORM, а не во внешнем интерфейсе. Вот что я нашел:

  public function getLabId() {
    return perissionCheck('lab_id') ? $this->lab_id : '';
  }

Спасибо в любом случае! :)

0 голосов
/ 06 января 2020

попробуйте этот способ, пожалуйста

foreach ($all_cell_lines as $cell) {
$allcells[] = [
    "CellID" => $cell->id,
    "iPSC-ID" => $cell->ipsc_id,
    "Lab-ID" => $cell->lab_id,
    "altID" => $cell->alt_id,
    "project" => $cell->project
];
var_dump($allcells);

}

попробуйте выбрать, используя имя вашего поля в базе данных

...