Rumah  >  Artikel  >  rangka kerja php  >  Ringkaskan fungsi umum thinkphp6

Ringkaskan fungsi umum thinkphp6

WBOY
WBOYke hadapan
2022-05-07 11:45:534038semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang thinkphp, yang terutamanya mengatur beberapa fungsi yang biasa digunakan, termasuk mendapatkan data borang, menetapkan mod berbilang aplikasi, pemaparan templat, dll., seperti berikut Mari kita lihat, Saya harap ia akan membantu semua orang.

Ringkaskan fungsi umum thinkphp6

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Langkah pertama ialah menukar imej komposer

Cermin Ali: konfigurasi komposer -g repo.packagist komposer https://mirrors.aliyun.com/composer/

Cermin Laravel China : konfigurasi komposer -g repo.packagist komposer https://packagist.laravel-china.org

Imej penuh China: composer config -g repo.packagist composer https:/ /packagist. phpcomposer.com9

Dalam kes muat turun awan kod atau git, didapati tiada vendor dan ia tidak boleh dijalankan

pemasangan komposer --ignore-platform-reqs

atau

kemas kini komposer --ignore-platform-reqs

Gunakan Tp6

1 Muat turun tp6
ciptaan komposer-. projek topthink/think tp

2. Tetapkan mod berbilang aplikasi
Kaedah lalai tp6 ialah memasukkan aplikasi/pengawal untuk akses aplikasi tunggal -pembangunan aplikasi (contohnya: http://***.com/admin, http://***.com/index) perlu mendayakan mod berbilang aplikasi

composer requiretopthink/think-multi -app

nama aplikasi binaan php think (contohnya: indeks atau pentadbir)

3 Penyampaian templat

tp3: $this->display();tp5: return $this->fetch();tp6: return View::fetch('index');

tp6 tidak mempunyai banyak pergantungan. pakej secara lalai dan perlu dimuat turun

komposer memerlukan topthink/think-view

Pengenalan Pengawal

gunakan thinkfacadeView;

4 lompat semula
Ringkaskan fungsi umum thinkphp6

komposer memerlukan liliuwei/ thinkphp-jump

Pengenalan Pengawal

Pengenalan pengepala: gunakan liliuweithinkJump;

Jika ralat dilaporkan:

Semak sama ada app/config/jump.php mempunyai tetapan:

'dispatch_success_tmpl' => app()->getRootPath().'/vendor/qeq66/think-jump/template/jump.html','dispatch_error_tmpl' => app()->getRootPath().'/vendor/qeq66/think-jump/template/jump.html'

5. Dapatkan data borang Pengenalan pengawal

use think\facade\Request;$code = Request::param('code');
Atau

$code = input("code");

6 Kod pengesahan digital komposer memerlukan topthink/think-. captcha

Cari fail middleware.php global middleware dalam direktori aplikasi aplikasi , hidupkan kod yang diulas di bawah thinkmiddlewareSessionInit::class

7 🎜> komposer memerlukan topthink/think-image
8 pertanyaan pilih mysql


dialihkan daripada tp5. tatasusunan dimensi, dan tp6 mengembalikan set data Walaupun pegawai berkata pada dasarnya tiada perbezaan daripada operasi tatasusunanRingkaskan fungsi umum thinkphp6

Tetapi kadangkala tatasusunan berguna, seperti

<.>arr [k][0] = "test" Jenis pengubahsuaian tidak langsung ini akan melaporkan ralat dalam set data yang dikembalikan secara lalai, tetapi tatasusunan boleh dikendalikan seperti ini 1. 2
Ubah suai BaseQuery. php /vendor/topthink/think-orm/src/db dalam direktori tp6

 db::name('ceshi')->select()->toArray();


Ubah suai contoh seperti yang ditunjukkan dalam gambar, padamkan kotak merah dalam gambar, dan tambahkan baris di bawah

Ringkaskan fungsi umum thinkphp6

$resultSet = $this->connection->select($this);

9 , Penomboran

return $resultSet;

Gunakan kaedah penomboran untuk mendapatkan data penomboran, dan tanya nilai subskrip yang tidak boleh ditambahkan pada koleksi

Syarat pertanyaan perlu menambah 'query' => request()- >param(),
$list = db::name('admin_menu')->where($where)->paginate(['list_rows'=> 10,'query' => request()->param(),]);

Penyelesaian:

sisi php:

sisi html

{$page|raw}
// An highlighted block$list = db::name('admin_menu')->where($where)->paginate(['list_rows'=> 10,'query' => request()->param(),]);$new_arr = array();foreach($list as $k=>$v){$v[$k]['erji_menu'] = “案例”;$new_arr[] = $v;}
// 获取分页显示$page = $list->render();// 模板变量赋值View::assign('list', $new_arr);View::assign('page', $page);

Pengubahsuaian kelas rujukan halaman

tp6vendortopthinkthink-ormsrcpaginatordriverBootstrap php

10 Perbezaan data baharu

Bandingkan kaedah simpan tp5 untuk mengemas kini kaedah tambah untuk Tambah

Simpanan tp6 adalah mengemas kini dan menambah kaedah telah dipadamkan .
Tambahkan kunci utama Jika kunci utama tidak ditambah, akan ada masalah jika pelaksanaannya berjaya dikembalikan.
Tidak. Seperti kaedah tambah tp5, ia mengembalikan id kunci utama data yang ditambahkan

db::name('ceshi')->where(array('tz_id'=>$post['tz_id']))->save($users);db::name('ceshi')->save($users);

Walaupun ulasan mengatakan bahawa ia mengembalikan kunci utama kenaikan automatik, saya masih tidak mendapat kunci utama kenaikan automatik semasa saya menguji di sini, saya tidak pasti sama ada masalah versi atau sesuatu belum jumpa, anggap saja saya tidak sebut

/**
 * 插入记录
 * @access public
 * @param array   $data         数据
 * @param boolean $getLastInsID 返回自增主键
 * @return integer|string
 */public function insert(array $data = [], bool $getLastInsID = false){
    if (!empty($data)) {
        $this->options['data'] = $data;
    }

    return $this->connection->insert($this, $getLastInsID);}
dan jika anda tidak dapat, anda hanya boleh terus mencari dan mendapati terdapat insertGetId yang anda boleh dapatkan. Maksudnya, untuk membangunkan dengan cepat, kami biasanya menggunakan save untuk menyelesaikan masalah Apabila kami perlu mendapatkan kunci utama auto-incremented, kami menukarnya kepada insertGetId

.

11、tp6 高级查询and和or同时使用
Ringkaskan fungsi umum thinkphp6
tp6针对and查询和or查询有快捷方法
Ringkaskan fungsi umum thinkphp6
但是这些快捷方法会有很多局限性,当我们对数据进行一系列的复杂查询时这些快捷方法就会出现很多问题例如:

$where1[] = ["order_khname","like",'%'.$keywords.'%'];$where2[] = ["order_khqq","like",'%'.$keywords.'%'];$where3[] = ["order_khmobile","like",'%'.$keywords.'%'];$where[] = ["order_type","=",$ddzt];$list = db::name('ceshi')
    ->where($where)
    ->whereOr([$where1,$where2,$where3])
    ->paginate([
        'list_rows'=> 10,
        'query' => request()->param(),
    ]);

这里我们想要的sql格式为:

SELECT * FROM `dc_ceshi` WHERE  `order_type` = 0 and ( ( `order_khname` LIKE '%1%' )  OR ( `order_khqq` LIKE '%1%' )  OR ( `order_khmobile` LIKE '%1%' )) LIMIT 0,10

实际生成的格式为:

SELECT * FROM `dc_ceshi` WHERE  `order_type` = 0 OR ( `order_khname` LIKE '%1%' )  OR ( `order_khqq` LIKE '%1%' )  OR ( `order_khmobile` LIKE '%1%' ) LIMIT 0,10

这里就可以用到闭包查询(注:这只是我学习tp6的时候遇到的问题然后在tp6文档里面找到的解决方式,直接用原生sql也是可以解决,把where条件直接改成一个自定义的字符串也可以解决,用tp5的连接方式也应该可以但是我没试)

$list = db::name('ceshi')
    ->where(function ($query) use ($keywords){
            $query->where("order_khname","like",'%'.$keywords.'%')
                ->whereOr("order_khqq","like",'%'.$keywords.'%')
                ->whereOr("order_khmobile","like",'%'.$keywords.'%');
        })
    ->where($where)
    ->paginate([
    'list_rows'=> 10,
    'query' => request()->param(),]);

这时候得到sql格式为:

SELECT * FROM `dc_ceshi` WHERE  (  `order_khname` LIKE '%1%' OR `order_khqq` LIKE '%1%'  OR `order_khmobile` LIKE '%1%' )  AND `order_type` = 0 LIMIT 0,10

已经满足了我的需求,但是还是有一个问题就是如果keywords这个变量没有值的时候他查询的语句格式为:

SELECT * FROM `dc_ceshi` WHERE  (  `order_khname` LIKE '%%' OR `order_khqq` LIKE '%%'  OR `order_khmobile` LIKE '%%' )  AND `order_type` = 0 LIMIT 0,10

这种情况只需要在加个if判断:

$list = db::name('ceshi')
    ->where(function ($query) use ($keywords){
        if($keywords){
            $query->where("order_khname","like",'%'.$keywords.'%')
                ->whereOr("order_khqq","like",'%'.$keywords.'%')
                ->whereOr("order_khmobile","like",'%'.$keywords.'%');
        }
        })
    ->where($where)
    ->paginate([
    'list_rows'=> 10,
    'query' => request()->param(),]);

12、tp6 find查询变动
tp5、tp3我们查询一个表是否存在数据可以直接查询一条

$datafind = db::name('ceshi')->find();

tp6 find查询必须增加where条件或者order排序,为什么不知道。有大神知道指点下O(∩_∩)O哈哈~

$datafind = db::name('ceshi')->order('ID DESC')->find();

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Ringkaskan fungsi umum thinkphp6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam