2013-07-13 3 views
0

У меня есть таблица с именем 'servers' в моем db. Поэтому, когда я хочу добавить туда некоторые данные с этим кодом, это просто нормально:Kohana 3.2 select issue

public function action_add() 
    { 
     $serverGameId = (int)Arr::get($_POST, 'serverGameId', ''); 
     $newServerName = Arr::get($_POST, 'newServerName', ''); 

     try 
     { 
      $server = new Model_Server(); 
      $server->Name = $newServerName; 
      $server->GameId = $serverGameId; 
      $server->save(); 
     } 
     catch(ORM_Validation_Exception $e) 
     { 
      echo json_encode(array("success" => false, "errors" => $e->errors('validation'))); 
      return false; 
     } 

     $this->request->headers['Content-Type'] = 'application/json'; 
     echo json_encode(array("success" => true, "serverId" => $server->Id)); 
     return true; 
    } 

Вот модель:

class Model_Server extends ORM { 

protected $_table_name = 'servers'; 

public function rules() 
{ 
    return array(
     'Name' => array(
      array('not_empty'), 
     ) 
    ); 
} 

}

Но у меня есть проблема, когда я пытаюсь выбрать его из таблицы:

public function action_servers() 
{ 
     $gameId = (int)Arr::get($_POST, 'gameId', ''); 

     if($gameId == -1) return false; 

     try 
     { 
      $servers = ORM::factory('server') 
         ->where('GameId', '=', $gameId) 
         ->find_all(); 
     } 
     catch(ORM_Validation_Exception $e) 
     { 
      echo json_encode(array("success" => false, "errors" => $e->errors('validation'))); 
      return false; 
     } 

     $this->request->headers['Content-Type'] = 'application/json'; 
     echo json_encode(array("success" => true, "servers" => $servers, "gameId" => $gameId)); 
     return true; 
    } 

Я уже пытаюсь решить проблему с кодом изменения внутри примерочных блока на:

$servers = DB::select('servers')->where('GameId', '=', $gameId); 

Даже когда я пытаюсь просто получить все свои серверы из db без '-> где' это не работает.

Любые идеи?

ответ

0

Попробуйте print_r($servers); внутри try блок, чтобы посмотреть, что вы получаете от модели.

И $servers некоторый класс с результатами - используйте Еогеасп, чтобы получить результат (один на один)

$results = array(); 

foreach($servers as $row) { 
    //echo $row->Name; 
    $results[] = $row->Name; 
} 

Или

$results = array(); 

foreach($servers as $row) { 
    //echo $row->as_array(); 
    $results[] = $row->as_array(); 
} 
+0

Это помогло, спасибо. –

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