tp5.1シンプルメッセージボードバージョン1(学習記録)

基本的な機能、いいね、コメント、コメント。

最も単純なメッセージボード、必要なデータシート、ユーザーシート、コメントシート、メッセージコンテンツシート。

ユーザーテーブル:

id名pwdユーザー名uerimg(IDユーザーアカウントパスワードニックネームアバター)

メッセージフォーム:

id username time body dianzan taoyan(IDユーザーのニックネーム、メッセージが投稿された時間、メッセージの内容、いいね!と反対の数)

コメントフォーム:

id uid toid pinglunneirong pltime text_id(IDは、コメントの投稿者のアカウントがコメント化されたコメントのユーザーアカウントにコメントされたときのコメント化された記事のIDです)

メッセージを残す機能は非常によく実装されています。つまり、データベースの基本的な追加、削除、変更、チェックです。

主にメッセージを好き嫌いでチェックしますフロントエンドのスカムでは実装が少し難しいので、jQueryとajaxを学びました。

メッセージの内容にコメントするためのフォームもありますので、メッセージの作成方法を検討してください。具体的には、Zhihuのように、または友達の輪の一種の返信モードのように、大男がどのように書くかを見て、学びます。

最初のバージョンは、ユーザーがいいねを繰り返すことを制限していません。制限されている場合は、個人的にメッセージフォームにtoidを追加して、記事が好きな人のアカウントを記録します。次回、この人が好きな記事を繰り返します。必要に応じて、ajaxを使用して返された警告を受け取り、ユーザーに警告を表示します。今回はデータベースにデータを送信しないでください。反対も同じです。「いいね!」ボタンの後に「いいね!」をキャンセルする方法については、アラートは表示されず、直接データベースに転送されマイナス1されます。詳細については、2番目のバージョンを参照してください。

メッセージの表示にも問題があります。実際、ページネーションを行うことでこの問題をうまく解決できます。tp5でも、既製のものを直接使用できます。残念ながら、tp5のその他の項目は、完成してから徐々に慣れてきました。そして、拡張機能の使い方。したがって、これらの改善は2番目のバージョンにあります。

もう1つのポイントは、JSを必要とするフロントエンドの動的表示です。私はまだPHPをよく学んでいないので、jQueryを学ばなければなりません。学習後、バックエンドなしで多くのことをフロントエンドに引き継ぐことができるので、トラブルを回避できます。

メインコード(すべてコントローラーで記述)

コードを挿入した後、何も書き込めない理由がわかりません。これはもっと恥ずかしいです。jQueryに関する別の記事を見てください。

<?php
namespace app\index\controller;

use think\Controller;
use think\facade\Request;
use think\Db;
use think\facade\Session;


class Index extends Controller
{
  public function index()
  {
    if (Request::instance()->isPost()) {
      $name = Request::instance()->post('name');
      $pwd  = Request::instance()->post('pwd');

      $res = Db::table('userlog')->where('name', $name)->find();
      if ($res) {
        if ($res['pwd'] == $pwd && $res['name'] == $name) {
          //开启session
          Session::set('name', $name);
          Session::set('username', $res['username']);
          Session::set('userimg',$res['userimg']);
          return $this->success('登录成功', 'http://liuyanban.cn/public/index.php/index/index/body', -1, 50);
        } else {
          echo  '传入的用户名' . $name . '查到的用户名' . $res['name'] . '查到的密码' . $res['pwd'] . '传入的密码' . $pwd;
          return $this->error('用户或密码错误不存在', "http://liuyanban.cn/public/index.php/index", -1, 50);
        }
      } else {
        return $this->error('用户不存在', "http://liuyanban.cn/public/index.php/index");
      }
    }
    return $this->fetch();
  }

  public function register()
  {
    $rout = __DIR__;
    if (Request::instance()->isPost()) {
      $name = Request::instance()->post('name');
      $pwd  = Request::instance()->post('pwd');
      $username = Request::instance()->post('username');
      $userimg = Request::file('txfile');
      if(empty($userimg)){
        $this->error('!!!',"www.baidu.com",-1,50);
      }
      $rout = substr($rout,0,24);
      $rout = $rout."public\img\\";
      $info = $userimg->move($rout);
      echo "<br>";
      $str_info  = $info->getSaveName();
      $str_info  = $rout.$str_info;
      $data = ['name' => $name, 'pwd' => $pwd, 'username' => $username,'userimg'=>$str_info];
      $mark = Db::table('userlog')->insert($data);
      if ($mark) {
        return $this->success('注册成功,请登录', 'http://liuyanban.cn/public/index.php/index');
      }
    }
    return $this->fetch();
  }

  public function body()
  {
    $username = Session::get('username');
    $name = Session::get('name');
    $this->assign('username', $username);
    $res = Db::table('userlog')->where('name',$name)->find();
    $userimg = $res['userimg'];
    $userimg = substr($userimg,-57,);
    $str = 'http://liuyanban.cn'.$userimg;
    $this->assign('userimg',$str);
    $res = Db::table('liuyanneirong')->order('id', 'desc')->select();
    $this->assign('list', $res);
    
    //$value_1 = huifu();

    return $this->fetch();
  }

  public function edit()
  {
    $username = Session::get('username');
    if (Request::instance()->isPost()) {
      $text = Request::instance()->post('text_body');

      $data = ['username' => $username, 'body' => $text];
      $check  = Db::table('liuyanneirong')->insert($data);
      if ($check) {
        return $this->success('发布成功', 'http://liuyanban.cn/public/index.php/index/index/body');
      } else {
        return $this->error('发布失败', 'http://liuyanban.cn/public/index.php/index/index/edit');
      }
    }
    return $this->fetch();
  }

  public function dianzan()
  {
    if (Request::instance()->isPost()) {
      $id = Request::instance()->post('id');
      $res = Db::table('liuyanneirong')->where('id', $id)->find();
      $res['dianzan'] = $res['dianzan'] + 1;
      Db::table('liuyanneirong')->where('id', $id)->update(['dianzan' => $res['dianzan']]);
    }
  }

  public function taoyan()
  {
    if (Request::instance()->isPost()) {
      $id = Request::instance()->post('id');
      $res = Db::table('liuyanneirong')->where('id', $id)->find();
      $res['taoyan'] = $res['taoyan'] + 1;
      Db::table('liuyanneirong')->where('id', $id)->update(['taoyan' => $res['taoyan']]);
    }
  }

  public function pinglun()
  {
    $uid = Session::get('username'); //收集评论用户的name
    if (Request::instance()->isPost()) {
      //评论功能概述
      // 1. 建立评论表 由id 当前用户id 被评论用户id  以及评论内容  组成
      // 2. 查表 查 liuyanneirong 表,
      // 3. 往 pinglun 表里写入数据 
      $id = Request::instance()->post('id');
      $text_body = Request::instance()->post('text-body');
      $res = Db::table('liuyanneirong')->where('id', $id)->find();
      //查到被评论用户name
      $toid = $res['username'];
      $textid = $res['id'];
      $data = ['uid' => $uid, 'toid' => $toid, 'pinglunneirong' => $text_body, 'text_id' => $textid];
      //存入评论
      Db::table('pinglun')->insert($data);
    }
  }

  public function huifu()
  {
    //查看评论回复
      $text_id = Request::post('id');
      $respl = Db::table('pinglun')->where('text_id', $text_id)->select();
      //$respl = Db::table('pinglun')->where('text_id', $text_id)->find();
      if(empty($respl))
      {
         return  json($respl);
      }else{
         return  json($respl);
      }
  }
}

おすすめ

転載: blog.csdn.net/github_36544258/article/details/91857362