2017-03-03 36 views
-2

如何在laravel中將記錄插入到couchDB中。我已經做了檢索部分,但現在我想要做插入,更新刪除如何在laravel中插入到couchDB中

我的檢索代碼如下。下面

class couchdbcontroller extends Controller 
{ 

    public function getdata() 
    {   
     $content =null; 

     try { 
      $client = new Client();    

      $apiRequest = $client->request('GET','http://localhost:5984/user/_design/userdesign/_view/user-view?limit=20&reduce=false');  

      $code = $apiRequest->getBody()->getContents(); 

     } catch (RequestException $re) { 
      //For handling exception 
      return $re->error; 
     } 

     return $code; 
     //return response()->json($code); 
    } 
} 

插入的代碼:

public function guzzle_insert_doc() 
{ 
    $client = new Client(); 
    $res = $client->request('PUT', 'http://localhost:5984/login/new_doc',[ 
      'uname' => 'admin', 
      'password' => 'admin123', 
     ]); 
    //return $res; 
} 

錯誤:客戶端錯誤:PUT http://localhost:5984/login/new_doc導致了400 Bad Request響應: { 「錯誤」: 「BAD_REQUEST」, 「理由」:「無效UTF- 8 JSON「}

+0

你的問題是什麼?你做過任何研究,你有什麼嘗試? CouchDB使用原始HTTP根據您的Client()類查詢數據庫,您只需執行PUT請求並在HTTP主體中傳遞數據庫。如果您想使用現有的庫或只是將其視爲參考,請查看[PHP-on-Couch](https://github.com/PHP-on-Couch/PHP-on-Couch) –

+0

我現在使用laravel從couchdb中檢索數據。現在我想用laravel將數據插入到couchdb中。你能告訴我該怎麼做...... Pleasae指的是我爲檢索部分所做的上述代碼。 – Carlos

+0

您給出的示例鏈接是一個php-on-couch。我沒有使用該插件。我們也可以使用無插件。我已經完成了檢索的一部分,但不是我沒有得到什麼shud我寫入插入數據到couchdb像我爲檢索 – Carlos

回答

0

從我的谷歌搜索,你可以做這樣的事情:

<?php 

$client = new Client(); 
$doc = ['title'=>'This is a new doc']; 
$res = $client->request('PUT', 'http://localhost:5984/db/new_doc',['json' => $doc]); 

我假設你正在使用狂飲(如果我錯了,請告訴我們你的使用)

我沒測試我的代碼,因爲我沒有時間來建立與狂飲一laravel項目。請參閱​​以獲得進一步幫助。

+0

是我正在使用guzzle – Carlos

+0

上面的代碼,你給它創建一個數據庫..不插入記錄到數據庫。如果我提到已經存在的數據庫名稱,那麼它說數據庫已經存在。我想插入記錄到已有的數據庫中。 – Carlos

+0

我指定了兩次_id,這是一個錯誤,但最後它正在創建一個文檔。看,我在名爲* db *的數據庫中指向新文檔'new_doc'。我也將文檔數據作爲JSON對象傳遞。 –