CodeIgniter は初めてです。Phil Sturgeon の RestServer と RestClient を使用しています。CodeIgniter RestClient コントローラで POST リクエストを作成して CodeIgniter RestServer のデータを更新しようとしましたが、データベースのデータが更新されません。私の POST リクエストは正しくないと思います。
コントローラーでの RestClient POST リクエストは次のとおりです。
$result = $this->rest->post('newscontroller/news/format/json',
array('news_id' => $news_id,
'news_title' => $news_title,
'news_category' => $news_category ),
'json');
if(isset($result->status) && $result->status == 'success')
{
$data['message'] ='News has been updated.';
$this->load->view('otherpageview',$data);
}
else
{
$data['message'] ='Something has gone wrong';
$this->load->view('otherpageview',$data);
}
$result->statusをエコーしましたが、表示するものが何もないため、$resultは値を取得していないようです。そして、このコントローラーのコンストラクターにもこれがあります:
// Load the rest client spark
$this->load->spark('restclient/2.1.0');
// Load the library
$this->load->library('rest');
// Run some setup
$this->rest->initialize(array('server' => 'http://api.therestserver.com/index.php/'));
そして、 newscontroller である RestServer のコントローラーには、次のメソッドがあります。
function news_post()
{
$news=array(
'news_id' => $this->post('news_id'),
'news_title' => $this->post('news_title'),
'news_category' => $this->post('news_category') );
$result = $this->News_model->UpdateNews($news);
if($result === FALSE)
{
$this->response(array('status' => 'failed'));
}
else
{
$this->response(array('status' => 'success'));
}
}
News_modelの場合:
public function UpdateNews($news)
{
$this->db->where('news_id',$news->news_id);
$this->db->update('news',$news);
}
POSTリクエストとメソッドがどのように機能するかまだ理解していないため、どこが間違っているのかわかりません。私は Nettuts のチュートリアルを読み、これについて検索しましたが、それでも..おそらく英語の読み書きが下手なためです。誰かが私を助けてくれることを願っています。ありがとうございます!:)