ホームページ  >  記事  >  バックエンド開発  >  thinkPHP5 はデータベースにコンテンツを追加するメソッドを実装します

thinkPHP5 はデータベースにコンテンツを追加するメソッドを実装します

不言
不言オリジナル
2018-06-07 14:44:483047ブラウズ

この記事では、thinkPHP5 でデータベースにコンテンツを追加する方法を主に紹介し、thinkPHP5 データベースの構成、モデル、コントローラーの使用、およびデータ挿入関連の操作スキルを詳細に分析します。必要な方は参考にしてください。次の

この記事の例では、thinkPHP5 がデータベースへのコンテンツの追加を実装する方法について説明します。参考までに、詳細は次のとおりです。

新しいフレームワークをインストールすると、何をすればよいのかわかりません。次に、最初に書き込み関数を作成します。

まず準備をし、まずデータベースに接続します。

設定ファイルは、application の database.php にあります。

return [
  // 数据库类型
  'type'      => 'mysql',
  // 服务器地址
  'hostname'    => '127.0.0.1',
  // 数据库名
  'database'    => 'shoptest',
  // 用户名
  'username'    => 'root',
  // 密码
  'password'    => '',
  // 端口
  'hostport'    => '3306',
  // 连接dsn
  'dsn'       => '',
  // 数据库连接参数
  'params'     => [],
  // 数据库编码默认采用utf8
  'charset'     => 'utf8',
  // 数据库表前缀
  'prefix'     => '',
  // 数据库调试模式
  'debug'      => true,
  // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
  'deploy'     => 0,
  // 数据库读写是否分离 主从式有效
  'rw_separate'   => false,
  // 读写分离后 主服务器数量
  'master_num'   => 1,
  // 指定从服务器序号
  'slave_no'    => '',
  // 是否严格检查字段是否存在
  'fields_strict'  => true,
  // 数据集返回类型
  'resultset_type' => 'array',
  // 自动写入时间戳字段
  'auto_timestamp' => false,
  // 时间字段取出后的默认时间格式
  'datetime_format' => 'Y-m-d H:i:s',
  // 是否需要进行SQL性能分析
  'sql_explain'   => false,
];

設定後はそのままにして、最初にコントローラーを作成します

デフォルトのダウンロードされたコレクションでは、アプリケーション フォルダー内にインデックス フォルダーがあります。

コントローラー、クラス、テンプレートを格納するフォルダーであり、名前は変更可能です。

3.2を使ったことがある方ならわかりやすいと思いますが、オリジナルのホームファイルに相当します。

最初にこのフォルダーに 3 つのフォルダーを作成します

#次に、コントローラー フォルダーに新しいindex.php ファイルを作成します (実際にはデフォルトで 1 つあります)。 。

クラス class に次のようなコードを記述します

public function indexs()
{
    return '我打开控制器了';
}

URL バーにサーバー名/インデックス/インデックス/インデックスを入力します

テキスト行が表示されます。

それを追加して、最初にテンプレートを紹介します。

まず use think\View を追加し、テンプレート ライブラリを導入します。

$view = new View;
return $view->fetch('模板名');

それでは、テンプレートをどこに置くかです。コントローラ フォルダにはビュー フォルダがあります。

テンプレート ファイルを直接そこにドラッグすると、エラーが報告されます。

#エラー パスの後半を見てください。 /application/index\view\index\adda.html

application/index/view が見つかります

次に、別のフォルダー名とファイル名があります。

このフォルダーはコントローラーの名前に対応するため、対応するフォルダーを作成する必要があります。次に、テンプレートをドラッグして呼び出します。もちろん、完全なフレームワークにはこの方法だけが含まれるわけではありません。その他の詳細については後で検討します。

フォーム送信の記述で一般的に使用される 2 つの方法、input('post.xxx') は投稿値の取得を指します。

//调用Db类
use think\Db;
$data = ['title' => input('post.title'), 'content' => input('post.title')];
Db::table('blogmsg')->insert($data);
//建立model的写法
$mod = new \app\index\model\Blogmsg;
$mod->title = input('post.title');
$mod->content = input('post.content');
$mod->save();
echo $mod->id;

比較的、個人的にはこの書き方の方が好みです。リクエストを使用して追加を完了します。 (今後laravelを使う際に便利です)

//引入Request。
use think\Request;
public function add(Request $req){
  //如果添加的内容需要处理,先单独取出然后赋值进去($req->post('title')可以获取其中的值)
  $a = rtrim($req->post('title'),' ');
  $req->post(['title'=>$a]);
  //准备添加
  $mod = new \app\index\model\Blogmsg;
  //allowField可以选择只添加哪些字段。
  $mod->allowField(['title','content'])->save($req->post());
  //获取返回的主键
  echo $mod->id;
}

データを追加する場合、自動検証は必ず必要です。

今回は自動検証を別ファイルに記述できます。 Index フォルダー内に Validate フォルダーを作成し、その中に Model フォルダーと同じ名前の php ファイルを作成します。使いやすい。

#サンプル

namespace app\index\validate;
use think\Validate;
class Blogmsg extends Validate
{
  //写规则
  protected $rule = [
    'title' => 'require|max:25',
    'content' => 'require|max:255',
  ];
  //写报错返回信息
  protected $message = [
    'title.require' => '必须填写',
    'title.max' => '不能超过25个字符',
    'content.require' => '必须填写',
    'content.max' => '不能超过255个字符',
  ];
  protected $scene = [
    'add' => ['title','content'],
    'edit' => ['title','content'],
  ];
}

次に、コントローラー部分に変わります

$a = $mod->validate(true)->allowField(['title','content'])->save($req->post());
if(false === $a){
  // 验证失败 输出错误信息
  dump($mod->getError());
  die;
}

# #最後に、繰り返しの送信とリモート送信を防ぐためのフォーム トークン関数を作成します。テンプレート内のフォーム フォームに {:token()} を追加し、検証ルールを変更して、検証ルールにトークンを追加します。以下の通り:

'title' => 'require|max:25|token',

これで記事の追加は終了となります。

以上がこの記事の全内容です。読んでいただきありがとうございます。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

thinkphp3.2.3 バージョンのデータベースの追加、削除、変更、およびクエリ実装コード


PHP は送信とJSON 質問の受信


#

以上がthinkPHP5 はデータベースにコンテンツを追加するメソッドを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。