ログイン画面に飽きたから設定変更画面を作った(CakePHP修行 #24)

SPONSORED LINK

Pocket

さて、ログイン画面の改修を続けようと思いましたが、いろいろ煮詰まったので設定変更画面を作りましたw。

以下、作業手順。

■ /controllers/users_controller.phpにedit()を追加

URL的には/users/editで呼び出したいのでedit()を追加します。

function edit()
{
  // あとで書く。
}

■ Viewを作る

次に/views/users/edit.thtmlを作ります。

edit_1.gif

↑ こんな感じ。

■ ロジックを書く

まー、次のような感じでしょうか。CakePHPのチュートリアルを見ながら適当に作ったら出来た。ビバPHP!w

ちょっと気をつけるべきところはパスワードの処理でしょうかね。パスワードに値が入っていたときだけ保存するようにしています。

function edit ()
{
  $this->pageTitle = 'Edit My Profile';
  $this->checkSession();
  $this->set('me', $this->User->findById($this->Session->read('my_id')));
  $this->User->id = $this->Session->read('my_id');
  if (empty($this->data))
  {
    $this->data = $this->User->read();
  }
  else
  {
    $this->data['User']['pwd'] = isset($this->data['User']['pwd']) ? sha1(PWD_KEY.$this->data['User']['pwd']) : $this->User->read('pwd');
    if ($this->User->save($this->data['User']))
    {
      $this->Session->write('sys_msg', 'Your profile has been updated.');
      $this->redirect('/users/home/');
    }
  }
}

■ テストする

テストもすんなりOK。メールが入っていないときはエラーがでるようにもしてみました。ちなみに現段階ではプロフィール画像のアップ機能は省略してあります。それについては大変そうなんでまた後日。

※ CakePHP修業は百式管理人がSNSっぽいものをCakePHPで作ろうとして挫折するまでの日記です。前回までのあらすじはこちらへ。

ツイッターもやっています!

SPONSORED LINK

  1. No comments yet.

  1. No trackbacks yet.