Der Code lautet wie folgt:F('user/*',NULL);
Oder verwenden Sie zum Löschen Filterbedingungen, zum Beispiel:
F('user/[^a]*', NULL);
G-Methode
Die Funktionen, die Thinkphp seit langem über die Methoden debug_start, debug_end und sogar die Debug-Klasse ausführen muss, wurden in Version 3.1 durch eine einfache G-Methode ersetzt, was ein großartiges Upgrade darstellt.
Die Funktion der G-Methode umfasst zwei Funktionen: Markierungsposition und Intervallstatistik. Schauen wir uns die spezifische Verwendung an:
Standort markieren
Die erste Verwendung der G-Methode besteht darin, die Position zu markieren, zum Beispiel:
G('begin');
Zeigt an, dass die aktuelle Position als Start-Tag markiert ist und die Ausführungszeit der aktuellen Position aufgezeichnet wird. Wenn die Umgebung dies unterstützt, kann auch die Speichernutzung aufgezeichnet werden. G-Methodenmarker können überall aufgerufen werden.
Laufzeitstatistik
Nachdem wir die Position markiert haben, können wir die G-Methode erneut aufrufen, um Intervallstatistiken durchzuführen, zum Beispiel:
G('begin');
// ...Andere Schnipsel
G('Ende');
// ...vielleicht gibt es hier noch anderen Code
// Statistisches Intervall durchführen
echo G('begin','end').'s';
G('begin','end') bedeutet, dass die Ausführungszeit von der Startposition bis zur Endposition gezählt wird (Einheit: Sekunden). Der Beginn muss eine markierte Position sein. Wenn die Endposition zu diesem Zeitpunkt noch nicht markiert ist Markieren Sie automatisch die aktuelle Position als End-Tag und das Ausgabeergebnis ähnelt:
0,0056s
Die standardmäßige statistische Genauigkeit beträgt 4 Dezimalstellen. Wenn Sie der Meinung sind, dass diese statistische Genauigkeit nicht ausreicht, können Sie sie auch wie folgt festlegen:
G('begin','end',6) .'s ';
Mögliche Ausgabe wäre:
0,005587s
Statistiken zum Speicher-Overhead
Wenn Ihre Umgebung Speichernutzungsstatistiken unterstützt, können Sie auch die G-Methode verwenden, um Intervall-Speicher-Overhead-Statistiken (Einheit: KB) durchzuführen, zum Beispiel:
echo G('begin','end',' m') .'kb';
Der dritte Parameter verwendet m, um die Speicher-Overhead-Statistik darzustellen. Das Ausgabeergebnis kann sein:
625kb
Wenn das End-Tag nicht markiert ist, wird die aktuelle Position automatisch zuerst als End-Tag markiert.
Wenn die Umgebung keine Speicherstatistiken unterstützt, ist dieser Parameter ungültig und es werden weiterhin Intervalllaufzeitstatistiken durchgeführt.
Vergessen Sie debug_start und debug_end, Einfachheit ist der richtige Weg, wissen Sie~
Ich Methode
Die I-Methode von Thinkphp ist neu in Version 3.1.3. Wenn Sie die vorherige Version 3.* verwenden, können Sie direkt auf den Variablenteil der 3.1-Schnellstart-Tutorialreihe verweisen.
Übersicht
Wie Sie sehen können, ist die I-Methode ein neues Mitglied der vielen Einzelbuchstabenfunktionen von Thinkphp. Sie wird hauptsächlich verwendet, um Systemeingabevariablen bequemer und sicherer zu erhalten . Das Verwendungsformat ist wie folgt:
I('Variablentyp.Variablenname',['Standardwert'],['Filtermethode'])
Der Variablentyp bezieht sich auf die Anforderungsmethode oder den Eingabetyp, einschließlich:
get GET-Parameter abrufen
post POST-Parameter abrufen
param bestimmt automatisch den Anforderungstyp, um GET-, POST- oder PUT-Parameter zu erhalten
Anfrage erhält REQUEST-Parameter
put erhält PUT-Parameter
Sitzung erhält den Parameter $_SESSION
Cookie erhält den Parameter $_COOKIE
Server erhält den Parameter $_SERVER
Globals erhält $GLOBALS-Parameter
Hinweis: Bei Variablentypen wird die Groß-/Kleinschreibung nicht beachtet.
Bei Variablennamen muss die Groß-/Kleinschreibung strikt beachtet werden.
Sowohl der Standardwert als auch die Filtermethode sind optionale Parameter.
Verwendung
Nehmen wir den Variablentyp GET als Beispiel, um die Verwendung der I-Methode zu veranschaulichen:
echo I('get.id'); Entspricht $ _GET['id']
echo I('get.name'); // Entspricht $_GET['name']
Standardwert unterstützen:
echo I('get.id',0); // wenn $_GET['id'] nicht existiert, wird 0
zurückgegeben
echo I('get.name',''); // Wenn $_GET['name'] nicht existiert, einen leeren String zurückgeben
Nach Methode filtern:
echo I('get.name','', 'htmlspecialchars'); // Verwenden Sie die htmlspecialchars-Methode, um $_GET['name'] zu filtern. Wenn sie nicht existiert, geben Sie eine leere Zeichenfolge zurück
Unterstützt das direkte Abrufen des gesamten Variablentyps, zum Beispiel:
I('get.'); // Get the gesamtes $_GET-Array
Auf die gleiche Weise können wir Variablen vom Typ „Post“ oder andere Eingabetypen abrufen, zum Beispiel:
1.I('post.name','' ,'htmlspecialchars '); // Verwenden Sie die htmlspecialchars-Methode, um $_POST['name'] zu filtern. Wenn sie nicht vorhanden ist, geben Sie eine leere Zeichenfolge zurück
I('session.user_id',0); // Holen Sie sich $_SESSION['user_id'] Wenn es nicht existiert, ist es standardmäßig 0
I('cookie.'); // Holen Sie sich das gesamte $_COOKIE-Array
I('server.REQUEST_METHOD'); // Holen Sie sich $_SERVER['REQUEST_METHOD']
Der Variablentyp „param“ ist eine Framework-spezifische Methode zum Abrufen von Variablen, die die automatische Bestimmung des aktuellen Anforderungstyps unterstützt, zum Beispiel:
echo I('param.id');
Wenn der aktuelle Anforderungstyp GET ist, entspricht dies GET['id']. Wenn der aktuelle Anforderungstyp POST oder PUT ist, entspricht dies dem Abrufen von _POST['id'] oder PUT-Parameter-ID.
Und Variablen vom Parametertyp können auch digitale Indizes verwenden, um URL-Parameter abzurufen (der PATHINFO-Modusparameter muss gültig sein, unabhängig davon, ob es sich um GET oder POST handelt), zum Beispiel:
Die aktuelle Zugriffs-URL-Adresse ist
http://serverName/index./New/2013 /06/ 01
Dann können wir bestehen
echo I('param.1'); Ausgabe 2013
echo I('param.2'); // Ausgabe 06
echo I('param.3'); // Ausgabe 01
Tatsächlich kann die Schreibmethode des Parametervariablentyps wie folgt vereinfacht werden:
I('id'); // Äquivalent zu I ('param .id')
I('name'); // Entspricht I('param.name')
Variablenfilterung
Bei Verwendung der I-Methode durchlaufen die Variablen tatsächlich zwei Filter. Die globale Filterung erfolgt durch die Konfiguration des Parameters VAR_FILTERS. Dabei ist zu beachten, dass der Filtermechanismus des Parameters VAR_FILTERS geändert wurde Für die rekursive Filterung mit der Methode array_walk_recursive besteht die Hauptanforderung für die Filtermethode darin, dass sie als Referenz zurückgegeben werden muss. Daher ist die Einstellung von htmlspecialchars hier ungültig. Sie können eine Methode anpassen, zum Beispiel:
Funktion filter_default(&$value){
$value = htmlspecialchars($value);
}
Dann konfigurieren:
'VAR_FILTERS'=>'filter_default'
Wenn Sie mehrmals filtern müssen, können Sie Folgendes verwenden:
'VAR_FILTERS'=>'filter_default,filter_exp'
Die filter_exp-Methode ist eine in das Framework integrierte Sicherheitsfiltermethode, die verwendet wird, um Injektionsangriffe mithilfe der EXP-Funktion des Modells zu verhindern.
Da der Parameter VAR_FILTERS einen globalen Filtermechanismus festlegt und rekursive Filterung verwendet, was sich auf die Effizienz auswirkt, empfehlen wir, die erhaltenen Variablen direkt zu filtern. Zusätzlich zum Festlegen der Filtermethode im dritten Parameter der I-Methode kann auch die Filterung festgelegt werden durch Konfigurieren des Parameters DEFAULT_FILTER. Tatsächlich ist die Standardeinstellung dieses Parameters:
'DEFAULT_FILTER' => 'htmlspecialchars'
Mit anderen Worten, alle Erfassungsvariablen der I-Methode werden nach htmlspecialchars gefiltert, dann:
I('get.name'); // Äquivalent zu htmlspecialchars( $_GET['name'])
Ebenso kann dieser Parameter auch mehrere Filter unterstützen, zum Beispiel:
'DEFAULT_FILTER' => 'strip_tags,htmlspecialchars'
I('get.name'); // Äquivalent zu htmlspecialchars( strip_tags($_GET['name']))
Wenn wir bei Verwendung der I-Methode die Filtermethode angeben, wird die Einstellung von DEFAULT_FILTER ignoriert, zum Beispiel:
echo I('get.name','', 'strip_tags' ); // Entspricht strip_tags($_GET['name'])
Wenn der dritte Parameter der I-Methode im Funktionsnamen übergeben wird, bedeutet dies, dass die Funktion zum Filtern der Variablen aufgerufen und zurückgegeben wird (wenn die Variable ein Array ist, wird array_map automatisch zum Filtern verwendet), andernfalls die integrierte Funktion Die Methode filter_var wird zum Filtern aufgerufen, zum Beispiel:
I('post.email','',FILTER_VALIDATE_EMAIL);
Menunjukkan bahawa $_POST['email'] akan format disahkan dan jika ia tidak memenuhi keperluan, rentetan kosong akan dikembalikan.
(Untuk lebih banyak format pengesahan, sila rujuk penggunaan filter_var dalam manual rasmi.)
Atau anda boleh menggunakan pengenalan aksara berikut:
Saya('post.email','','email') ;
Nama penapis yang disokong mestilah nilai yang sah dalam kaedah filter_list (persekitaran pelayan yang berbeza mungkin berbeza nama penapis yang disokong termasuk:
int
boolean
terapung
validate_regexp
sahkan_url
sahkan_e-mel
sahkan_ip
rentetan
dibogelkan
dikodkan
aksara_istimewa
tidak selamat_mentah
e-mel
url
nombor_int
nombor_apung
petikan_sihir
panggil balik
Dalam sesetengah kes khas, kami tidak mahu melakukan sebarang penapisan, walaupun DEFAULT_FILTER telah ditetapkan, anda boleh menggunakan:
Saya('get.name','',NULL );
Setelah parameter penapisan ditetapkan kepada NULL, ini bermakna tiada penapisan akan dilakukan lagi.
Kaedah L
Kaedah L digunakan untuk menetapkan dan mendapatkan definisi bahasa semasa apabila berbilang bahasa didayakan.
Format panggilan: L('Pembolehubah bahasa',['Nilai bahasa'])
Tetapkan pembolehubah bahasa
Selain menggunakan pakej bahasa untuk menentukan pembolehubah bahasa, kita boleh menggunakan kaedah L untuk menetapkan pembolehubah bahasa secara dinamik, contohnya:
L('LANG_VAR','Definisi Bahasa');
Takrif bahasa tidak sensitif huruf besar-besaran, jadi perkara berikut juga setara:
Salin kod Kod tersebut adalah seperti berikut:
L('lang_var','language definition');
Walau bagaimanapun, demi penyeragaman, kami mengesyorkan agar anda menggunakan huruf besar untuk menentukan pembolehubah bahasa.
Kaedah L menyokong tetapan kelompok pembolehubah bahasa, contohnya:
$lang['lang_var1'] = 'Definisi Bahasa 1 ';
$lang['lang_var2'] = 'Takrifan bahasa 2';
$lang['lang_var3'] = 'Takrifan bahasa 3';
L($lang);
Menunjukkan bahawa tiga pembolehubah bahasa lang_var1, lang_var2 dan lang_var3 ditetapkan pada masa yang sama.
[-lagi-]
Dapatkan pembolehubah bahasa
$langVar = L('LANG_VAR');
Atau:
$langVar = L('lang_var');
Jika parameter kosong, ini bermakna untuk mendapatkan semua pembolehubah bahasa yang ditakrifkan pada masa ini (termasuk dalam fail definisi bahasa):
$lang = L();
Atau kita juga boleh menggunakan dalam templat
{$Think.lang.lang_var}
um die Sprachdefinition auszugeben.
M-Methode
Die M-Methode wird zum Instanziieren einer Basismodellklasse verwendet. Der Unterschied zur D-Methode ist:
, keine Notwendigkeit, Modellklassen anzupassen, die E/A-Belastung zu reduzieren und eine bessere Leistung zu erzielen
Nach der Instanziierung können nur Methoden in der Basismodellklasse (Standard ist die Modellklasse) aufgerufen werden
, Sie können beim Instanziieren das Tabellenpräfix, die Datenbank und die Datenbankverbindungsinformationen angeben
Die Leistungsfähigkeit der D-Methode spiegelt sich darin wider, wie leistungsfähig die von Ihnen gekapselte benutzerdefinierte Modellklasse ist. Da jedoch die grundlegenden Modellklassen der neuen Version des Think-Frameworks immer leistungsfähiger werden, wird die M-Methode immer praktischer die D-Methode.
M-Methodenaufrufformat:
M('[Basismodellname:]Modellname','Datentabellenpräfix','Datenbankverbindungsinformationen')
Werfen wir einen Blick auf die spezifischen Einsatzmöglichkeiten der M-Methode:
, instanziieren Sie die Basismodellklasse (Model)
Wenn kein Modell definiert ist, können wir die folgende Methode verwenden, um eine Modellklasse für den Betrieb zu instanziieren:
$User = M('User');
//Führen Sie andere Datenoperationen aus
$User->select();
Diese Methode ist die einfachste und effizienteste, da keine Modellklassen definiert werden müssen und daher projektübergreifende Aufrufe unterstützt werden. Der Nachteil besteht auch darin, dass es keine benutzerdefinierte Modellklasse gibt, sodass die entsprechende Geschäftslogik nicht geschrieben werden kann und nur grundlegende CURD-Operationen ausgeführt werden können.
Entspricht eigentlich:
Zeigt die Operation der think_user-Tabelle an. Die M-Methode verfügt ebenso wie die D-Methode über eine Singleton-Funktion und wird bei mehrmaligem Aufruf nicht wiederholt instanziiert. Der Modellnamensparameter der M-Methode wird bei der Konvertierung in eine Datentabelle automatisch in Kleinbuchstaben umgewandelt, was bedeutet, dass die Benennungsspezifikation für Datentabellen von Think ausschließlich in Kleinbuchstaben vorliegt.
, andere öffentliche Modellklassen instanziieren
Die erste Instanziierungsmethode verfügt über keine Modellklassendefinition, daher ist es schwierig, einige zusätzliche logische Methoden zu kapseln. In den meisten Fällen müssen Sie jedoch möglicherweise nur eine allgemeine Logik erweitern. Anschließend können Sie die folgende Methode ausprobieren.
Das Ändern der Verwendung entspricht tatsächlich:
Da die Modellklassen des Systems automatisch geladen werden können, müssen wir die Klassenbibliothek vor der Instanziierung nicht manuell importieren. Die Modellklasse CommonModel muss Model erben. Wir können einige allgemeine logische Methoden in der CommonModel-Klasse definieren, wodurch die Notwendigkeit entfällt, für jede Datentabelle spezifische Modellklassen zu definieren. Wenn Ihr Projekt bereits über mehr als 100 Datentabellen verfügt, sind die meisten davon grundlegend. Für CURD-Operationen sind dies nur einige Modelle Da es sich um eine komplexe Geschäftslogik handelt, die gekapselt werden muss, ist die Kombination der ersten Methode und der zweiten Methode eine gute Wahl.
, eingehendes Tabellenpräfix, Datenbank und andere Informationen
Die M-Methode verfügt über drei Parameter. Der erste Parameter ist der Modellname (kann grundlegende Modellklassen und Datenbanken umfassen), und der zweite Parameter wird zum Festlegen des Präfixes der Datentabelle verwendet (lassen Sie ihn leer, um das Tabellenpräfix zu übernehmen). Der dritte Parameter wird verwendet, um die aktuell verwendeten Datenbankverbindungsinformationen festzulegen (lassen Sie ihn leer, um die vom aktuellen Projekt konfigurierten Datenbankverbindungsinformationen zu übernehmen), zum Beispiel:
Stellt die Instanziierung der Model-Modellklasse und den Betrieb der think_user-Tabelle in der DB2-Datenbank dar.
Wenn der zweite Parameter leer bleibt oder nicht übergeben wird, bedeutet dies, dass das Datentabellenpräfix in der aktuellen Projektkonfiguration verwendet wird. Wenn die betriebene Datentabelle kein Tabellenpräfix hat, können Sie Folgendes verwenden:
Mewakili instantiating kelas model Model dan mengendalikan jadual pengguna dalam pangkalan data db1.
Jika pangkalan data yang anda kendalikan memerlukan akaun pengguna yang berbeza, anda boleh menghantar maklumat sambungan pangkalan data, contohnya:
$User = M('User','think_' ,'mysql ://user_a:1234@localhost:3306/think');
Model digunakan untuk mewakili kelas model asas, dan kemudian jadual think_user dikendalikan, akaun user_a digunakan untuk menyambung ke pangkalan data, dan pangkalan data operasi adalah think.
Parameter maklumat sambungan ketiga boleh menggunakan konfigurasi DSN atau konfigurasi tatasusunan, dan juga boleh menyokong parameter konfigurasi.
Contohnya, dikonfigurasikan dalam fail konfigurasi projek:
'DB_CONFIG'=>'mysql://user_a :1234@ localhost:3306/think';
Kemudian anda boleh menggunakan:
$User = M('User','think_' ,'DB_CONFIG ');
Kelas model asas dan pangkalan data boleh digunakan bersama, contohnya:
$User = M('CommonModel:db2.User' ,'fikir_');
Jika kita ingin membuat contoh model hierarki, kita boleh menggunakan kelas model awam:
Salin kod Kod tersebut adalah seperti berikut:
M('UserLogic:User');
untuk membuat instantiate UserLogic, walaupun ini tidak masuk akal, kerana anda boleh menggunakan
D('User','Logic');
mencapai fungsi yang sama.
Kaedah R
Kaedah R digunakan untuk memanggil kaedah operasi pengawal tertentu, yang merupakan peningkatan dan tambahan lagi kaedah A. Lihat di sini untuk penggunaan kaedah A.
Format panggilan kaedah R:
R('[Projek://][Kumpulan/]Modul/Operasi','Parameter','Nama lapisan Pengawal')
Sebagai contoh, kami mentakrifkan kaedah operasi sebagai:
kelas UserAction memanjangkan Tindakan {
butiran fungsi awam($id){
Kembalikan M('Pengguna')->cari($id);
}
}
Kemudian anda boleh memanggil kaedah operasi ini dalam pengawal lain melalui kaedah R (biasanya kaedah R digunakan untuk panggilan silang modul)
$data = R('User/detail',array ('5 '));
Menunjukkan bahawa kaedah perincian pengawal Pengguna dipanggil (kaedah perincian mestilah jenis awam), dan nilai pulangan adalah untuk menanyakan data pengguna dengan ID 5. Jika kaedah operasi yang anda ingin panggil tidak mempunyai sebarang parameter, parameter kedua boleh dibiarkan kosong dan digunakan terus:
$data = R('User/detail');
Ia juga boleh menyokong panggilan merentas kumpulan dan projek, contohnya:
R('Admin/User/detail',array( '5' ));
Menunjukkan memanggil kaedah perincian pengawal Pengguna di bawah kumpulan Pentadbir.
R('Admin://User/detail', tatasusunan(' 5'));
Menunjukkan memanggil kaedah perincian pengawal Pengguna di bawah projek Pentadbiran.
Pengesyoran rasmi adalah untuk tidak membuat terlalu banyak panggilan pada lapisan yang sama, yang akan menyebabkan kekeliruan logik Bahagian yang dipanggil secara umum harus dirangkumkan ke dalam antara muka yang berasingan Anda boleh menggunakan ciri baharu pengawal berbilang lapisan untuk menambah lapisan pengawal yang berasingan untuk panggilan Antara Muka, sebagai contoh, kami menambah lapisan pengawal Api,
kelas UserApi melanjutkan Tindakan {
butiran fungsi awam($id){
Kembalikan M('Pengguna')->cari($id);
}
}
Kemudian, gunakan panggilan kaedah R
$data = R('Pengguna/detail',array('5'),'Api');
Dalam erti kata lain, parameter ketiga kaedah R menyokong penetapan lapisan pengawal panggilan.
Pada masa yang sama, kaedah R boleh menyokong tetapan akhiran operasi C ('ACTION_SUFFIX') semasa memanggil kaedah operasi Jika anda menetapkan akhiran kaedah operasi, anda masih tidak perlu menukar kaedah panggilan kaedah R.
Kaedah S
Kaedah S juga menyokong penghantaran parameter cache untuk kaedah cache semasa, contohnya:
S('data',$Data,3600,'Fail',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/'));
Selepas ujian, apabila digunakan dengan cara ini, hanya tiga parameter pertama sahaja yang sah, dan selebihnya tidak sah
{ 'Fail',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/')}
Akhirnya gunakan cara ini:
S('data1',$list,array('prefix'=>aaa','expire'=>'3600','temp'=>RUNTIME_PATH.'temp/1236'));
Apabila diperoleh:
$sdata = S('data1','',array('prefix'=>'aaa','temp'=>RUNTIME_PATH.'temp/1236'));
Kaedah T
Untuk mengeluarkan fail templat dengan lebih mudah, versi baharu merangkum fungsi T untuk menjana nama fail templat.
Penggunaan:
T([Sumber://][Modul@][Tema/][Pengawal/]Operasi,[Lihat Hierarki])
Nilai pulangan bagi fungsi T ialah nama fail templat lengkap, yang boleh digunakan secara langsung dalam kaedah paparan dan ambil untuk memaparkan output.
Contohnya:
T('Awam/menu');
// Kembali ke modul semasa/View/Public/menu.html
T('biru/Awam/menu');
// Kembalikan modul semasa/View/blue/Public/menu.html
T('Awam/menu','Tpl');
// Kembalikan modul semasa/Tpl/Public/menu.html
T('Awam/menu');
// Jika TMPL_FILE_DEPR ialah _ kembalikan modul semasa/Tpl/Public_menu.html
T('Awam/menu');
// Jika TMPL_TEMPLATE_SUFFIX ialah .tpl, kembalikan modul semasa/Tpl/Public/menu.tpl
T(
'Admin@Public/menu');
// Kembali ke Admin/View/Public/menu.html
T('Extend://Admin@Public/menu');
// Kembali ke Extend/Admin/View/Public/menu.html (Direktori Extend bergantung pada konfigurasi dalam AUTOLOAD_NAMESPACE)
Gunakan fungsi T secara langsung dalam kaedah paparan:
//Gunakan fungsi T untuk mengeluarkan templat
$this->paparan(T(
'Admin@Public/menu'));
Fungsi T boleh mengeluarkan templat hierarki pandangan yang berbeza.
Kaedah U
Kaedah U digunakan untuk melengkapkan pemasangan alamat URL Cirinya ialah ia boleh menjana alamat URL yang sepadan secara automatik berdasarkan mod dan tetapan URL semasa
U('alamat','parameter','pseudo-statik','sama ada hendak melompat','paparkan nama domain');
Kelebihan menggunakan kaedah U dalam templat dan bukannya membetulkan alamat URL ialah apabila persekitaran anda berubah atau tetapan parameter berubah, anda tidak perlu menukar sebarang kod dalam templat.
Format panggilan dalam templat mestilah {:U('address', 'parameter'...)}
Contoh penggunaan kaedah U:
U('User/add') // Jana alamat operasi tambah modul Pengguna
Boleh juga menyokong panggilan kumpulan:
U('Home/User/add') // Jana alamat operasi tambah modul Pengguna kumpulan Laman Utama
Sudah tentu, anda juga boleh menulis nama operasi untuk menunjukkan panggilan modul semasa
U('add') // Jana alamat operasi tambah modul akses semasa
Selain nama kumpulan, modul dan operasi, kami juga boleh memasukkan beberapa parameter:
U('Blog/readid=1') // Hasilkan operasi baca modul Blog dan alamat URL dengan id 1
Parameter kedua kaedah U menyokong parameter masuk dan menyokong dua kaedah definisi: tatasusunan dan rentetan Jika ia hanya parameter rentetan, ia boleh ditakrifkan dalam parameter pertama >
U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/catecate_id=1&status=1')
Tetapi kaedah takrifan berikut tidak dibenarkan melepasi parameter:
U('Blog/cate/cate_id/1/status/1')
Menurut tetapan URL projek yang berbeza, panggilan kaedah U yang sama boleh menghasilkan kesan alamat URL yang berbeza, contohnya:
U('Blog/readid=1')
Takrifan ini ialah contoh.
Jika URL semasa ditetapkan kepada mod biasa, alamat URL yang dijana terakhir ialah:
http://serverName/index.m=Blog&a=read&id=1
Jika URL semasa ditetapkan kepada mod PATHINFO, URL akhir yang dijana dengan kaedah yang sama ialah: http://serverName/index./Blog/read/id/1
Jika URL semasa ditetapkan kepada mod TULIS SEMULA, URL akhir yang dijana dengan kaedah yang sama ialah: http://serverName/Blog/read/id/1
Jika anda juga menetapkan pembatas PATHINFO:
'URL_PATHINFO_DEPR'=>'_'
akan dijana
Salin kod Kod adalah seperti berikut:
Jika URL semasa ditetapkan kepada mod TULIS SEMULA dan akhiran pseudo-statik ditetapkan kepada html, alamat URL akhirnya dijana dengan kaedah yang sama ialah:
Jika berbilang sokongan statik pseudo-statik ditetapkan, akhiran pseudo-statik pertama akan ditambahkan secara automatik pada penghujung alamat URL Sudah tentu, anda juga boleh menentukan akhiran pseudo-statik secara manual untuk dijana dalam kaedah U , sebagai contoh:
U('Blog/baca','id=1','xml')
akan dijana
Kaedah U juga boleh menyokong penghalaan Jika kita mentakrifkan peraturan penghalaan:
'news/:idd'=>'Berita/baca'
Kemudian anda boleh menggunakannya
U('/news/1')
Alamat URL yang dijana akhir ialah:
Jika aplikasi anda melibatkan alamat operasi berbilang subdomain, anda juga boleh menentukan nama domain yang perlu menjana alamat dalam kaedah U, contohnya:
Hanya masukkan nama domain yang perlu dinyatakan selepas @.
Selain itu, jika parameter kelima kaedah U ditetapkan kepada benar, ini bermakna nama domain semasa diiktiraf secara automatik dan nama subdomain bagi alamat semasa dijana secara automatik berdasarkan tetapan penggunaan nama subdomain APP_SUB_DOMAIN_DEPLOY dan APP_SUB_DOMAIN_RULES.
Jika URL_CASE_INSENSITIVE dihidupkan, alamat URL huruf kecil akan dijana secara seragam.