プログラミング奮闘記録

プラグラマーへ奮闘。PHP・Cakephp・JavaScript・isoアプリのコード勉強ブログです。その他の言語やツールなども使用します。

cakephp メッセージ機能 お久しぶり

進んでいなかったメッセージ機能すこし実装しました。

 

前回は、ログインしたユーザーの受信・送信フォルダに

指定のメッセージを表示させる記述を実装しました。

 

つまり、下記のデータを表示させる。

受信データ = 自分のIDがreceiverに入っているメッセージを表示

送信データ = 自分のIDがsenderに入っているメッセージを表示

 

更新したのが結構前のため、テーブル構成も載せておきます。

Message

・id

・sender (送信者のID)

・receiver (受信者のID)

・body (本文の内容)

になっています。

 

 

で!!!今回は、メッセージの送信機能を実装しました。

自分のID(ログインしている人のID)をFormでhiddenで送信してあげる処理。

public function add(){

$id = $this->Auth->user('id');  //不明。wwこれ消すとエラーでる。w
if ($this->request->is('post')){
if($this->Message->save($this->request->data)){
$this->Session->setFlash('送信が完了しました。');
return $this->redirect('index');
}
}

$this->set('userid', $this->Auth->user('id')); ←←ここが重要になります。
$this->set('message', $this->Message->findById($id));
}

 

赤字のところが重要になります。

あとは、公式ドキュメントの通りです。

 

赤字のところを説明します。

 

まずは、$this->Auth->user('id')でログイン情報が取得できます。

$this->setでviewに情報を渡す記述になります。

つまり、取得したログイン情報をviewに渡すという処理になります。

viewに渡すことで、viewのadd.ctpで情報を使うことができます。

 

 

add.ctpでは、hiddenでidをDBに格納しなければなりません。

<?php echo $this->Form->input('sender', array('type' => 'hidden', 'value' => $userid));?>

 

これで、送信機能は実装できました。

 

 

しかし、不明点が1つ。

$id = $this->Auth->user('id');

これ消すとなぜエラーでるの??

debugを2にしているから??

エラー出ても、機能自体はちゃんと動くので、問題ありませんが。

確実に不要なはずだが。。。。

 

次は、各ユーザーのページに行きメッセージを送信して、受信者のIDを格納して宛先を確定させるようにしたいとおもいます。

 

たぶん、ユーザーのページからgetでid取得して、hiddenで送信すればいけそう。