2015-08-09 4 views
2

Хорошо, я пытаюсь вставить некоторые записи в базу данных, создав команду, а затем используя вставку, как в найденной документации, но я получаю сообщение об ошибке «class app \ commands Yii» не найден. Теперь у меня есть это в верхней части моего контроллераВставка записей в базу данных в Yii2

namespace app\commands; 

use yii\console\Controller; 

И это команда я построил

//added game to database 
    foreach ($games as $g) 
    { 
     //echo $g[0].'<br>'.$g[1].'<br>'.$g[2].'<br>'.$g[3].'<br>'.$g[4].'<br>'.$g[5].'<br><br>'; 
     //take the upper and put into database 
     $command = Yii::app()->db->createCommand(); 

     $command->insert('nfl_lines',array('away'=>$g[0],'home'=>$g[1])); 

    } 
+0

В этом случае необычно запускать db c напрямую. Цель использования структуры - создать «модель», установить ее атрибуты, а затем использовать метод 'save()', чтобы записать ее в db. – Beowulfenator

+0

Я знаком, но это задание cron для добавления записей из xml-файла. Это было проще сделать так, положив все это на одну страницу. –

+0

Кстати, я уверен, что ActiveRecord не поддерживает пакетные вставки. Если вы все равно используете команды db, рассмотрите 'batchInsert()', это может быть более эффективным. – Beowulfenator

ответ

2
namespace app\commands; 
use Yii; 
use yii\console\Controller; 

И

Yii::$app->db->createCommand(); 

Вы используете yii2, что-то отличное от yii1