2015-06-05 5 views
0

Я хочу загрузить файл csv в базу данных с помощью laravel, но он не будет работать должным образом. Он получит сообщениеLaravel upload Csv error

вызов функции-члена подготовить() на не-объект

внутри моего контроллера.

Вот мой CsvController

public function uploadCsv() 
{ 
    //We are going to insert some data into the users table 
    $sth = $dbh->prepare(
     "INSERT INTO products (name, data_required_general, data_default_attribute, data_default_images) 
     VALUES (:name, :data_required_general, :data_default_attribute, data_default_images)" 
    ); 

    $csv = Reader::createFromPath('/csvFile/test.csv'); 
    $csv->setOffset(1); //because we don't want to insert the header 
    $nbInsert = $csv->each(function ($row) use (&$sth) { 
     //Do not forget to validate your data before inserting it in your database 
     $sth->bindValue(':name', $row[0], PDO::PARAM_STR); 
     $sth->bindValue(':data_required_general', $row[1], PDO::PARAM_STR); 
     $sth->bindValue(':data_default_attribute', $row[2], PDO::PARAM_STR); 
     $sth->bindValue(':data_default_images', $row[3], PDO::PARAM_STR); 

     return $sth->execute(); //if the function return false then the iteration will stop 
    }); 
} 

Мой взгляд

<div class="btn-group" role="group"> <!-- ~ btn btn-default btn-file ~ --> 
    Upload CSV 
    {{ Form::open(array('action' => '[email protected]', 'method' => 'POST', 'class' => 'btn btn-default')) }} 
     {{ Form::file('file','',array('class' => 'form-control', 'accept' => '.csv')) }} 
     {{ Form::submit('Upload!', array('class' => 'btn btn-default')) }} 
    {{ Form::close() }} 
</div> 

И мой маршрут

Route::post('csvUpload', array('as' => 'uploadCsv', 'uses' => '[email protected]')); 

ответ

0

: откуда этот объект $ ДВГ пришел? Это не объект.

$sth = $dbh->prepare( 

Решение:

$to_insert_array = array(
    'key'=>'value', 
    ... 
); 
DB::table('table_name')->insert($to_insert_array); 
+0

Из пакета – utdev

+0

лига/Csv ли вы удалить что-либо из приведенного выше кода, чтобы он работать? – utdev