CodeIgniter передает информацию о массиве в переменную $ data - PullRequest
0 голосов
/ 13 мая 2018

Я получаю совпадения из модели Games_Model() в таблице БД match_schedule модель работает на 100% без проблем.Затем я передаю метод модели getMatchInfo() представлению и назначаю его переменной $data $data['games'], которая передается как параметр в методе view как таковой

    $data['games'] = $this->games_model->getUpcomingGames();
    $this->load->view('templates/upcoming_fixtures_tbl', $data);

Вывод

Когда я делаю print_r($games) in templates/upcomg_fixtures.php, я получаю следующее:

Array (
    [0] => stdClass Object
        (
            [gameID] => 380
            [weekNum] => 1
            [gameTimeEastern] => 2018-06-14 18:00:00
            [homeID] => Russia
            [homeScore] => 
            [visitorID] => Saudi Arabia
            [visitorScore] => 
            [overtime] => 
            [tournament] => Fifa World Cup
            [sport] => soccer
            [location] => Luzhniki Stadium, Moscow
        )

    [1] => stdClass Object
        (
            [gameID] => 123
            [weekNum] => 1
            [gameTimeEastern] => 2018-09-06 20:20:00
            [homeID] => Philadelph
            [homeScore] => 
            [visitorID] => Atlanta Falcons
            [visitorScore] => 
            [overtime] => 
            [tournament] => NFL
            [sport] => AM Football
            [location] => Lincoln Financial Field
        )

    [2] => stdClass Object
        (
            [gameID] => 81
            [weekNum] => 14
            [gameTimeEastern] => 2018-05-18 00:00:00
            [homeID] => Hurricanes
            [homeScore] => 0
            [visitorID] => Reds
            [visitorScore] => 0
            [overtime] => 
            [tournament] => Super Rugby
            [sport] => rugby
            [location] => Westpac Stadium
        )

)

Проблема

Однако каккак только я пытаюсь работать с переменной $games, я получаю ошибку

foreach ($games as $game){ echo $game['gameID']; }

Неустранимая ошибка: невозможно использовать объект типа stdClass в качестве массива

Вопрос

Как получить доступ к переменной игры?

Соответствующий код Ниже:

class Users extends CI_Controller {
public function dashboard($page = 'dashboard')
    {
        if(!file_exists(APPPATH . '/views/users/' . $page . '.php')){
            show_404();
        }
        //HERE DATA GETS PASSED AS ARRAY
        $data['games'] = $this->games_model->getUpcomingGames(); 

        $data['title'] ='WELCOME USER';
        $this->load->view('templates/header', $data);
        $this->load->view('users/' . $page, $data);
        $this->load->view('templates/upcoming_fixtures_tbl', $data);
        $this->load->view('templates/footer', $data);

templates / upcomg_fixtures.php

foreach ($games as $game)
{
    echo $game['gameID'];
}

Результат

Неустранимая ошибка: невозможно использовать объектвведите stdClass как массив

Просмотры

enter image description here

Как получить доступ к массивуиндексы в моих взглядах?

В помощь, советы, конструктивную критику ценимованные.

1 Ответ

0 голосов
/ 13 мая 2018

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

$games - это массив объектов

сделайте это так, как вы думаете templates/upcomg_fixtures.php:

if (! empty($games)) 
{
    foreach ($games as $game)
    {
       echo $game->gameID;
       /* echo $game->weekNum; and so on */
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...