




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
TP的手冊相當多,其實不必再出這樣的貼子,論技術,我也是菜鳥一個,同時也在學習當中??吹秸搲隙嗔瞬簧傩屡笥?,不少在抱怨手冊看不懂,那我就姑且拋磚引玉,嘗試與新朋友們更簡單地、手把手地進入TP的應用中去。講解過程中有錯的地方,大家?guī)兔χ笧橹鳎碚摓檩o,將TP的最基本內容逛一遍,至少讓我們一起學會如何進行最簡單的對數(shù)據(jù)進行查、增、改、刪操作并輸出到模板。注意:以下的步驟,僅僅是TP靈活的布署方式其中一種,實際開發(fā)中可以根據(jù)自己的情況較容易明白。以下不再重復解釋。速開始一個項目項目:你要開發(fā)的系統(tǒng),稱之為項目。處理。不必理會什么意思,你甚至可以先把它看成是就是入口文件1下載正式版2擬好你的項目名稱,我們這里以Myapp為項目名稱ThinkPHP,起名為Myapp,也就是項目名稱ThinkPHP');Myapp');/');在應有模塊中,如果某個操作是需要頁面顯示的,只要對應在Myapp/Tpl/default/里建立一個文件夾,文件夾以應用模塊的名稱來命名,然后在這個文件夾下,建立一個以這個splay1在Myapp/Tpl/default/下建立一個文件夾,根據(jù)應用模塊的名稱,我們將這個文件夾命2在Myapp/Tpl/default/Index/下建立一個html文件,根據(jù)操作名稱,我們命名該文件為3打開Myapp/Lib/Action/文件,修改代碼為classIndexActionextendsAction{publicfunctionindex(){$value='hello,ThinkPHP';$this->assign('name',$value);$this->display();}}>在Action類里面使用assign方法對模板變量賦值,無論何種變量類型都統(tǒng)一使用assign$this->assign('name',$value);<IfModule>RewriteEngineonRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FILENAME}!-fRewriteRule^(.*)$$1[QSA,PT,L]</IfModule>te從這一節(jié)開始,我們就要涉及到數(shù)據(jù)庫操作,TP對數(shù)據(jù)庫的操作非常簡便,以下是一些基模型對象:即數(shù)據(jù)對象,你項目里每一個Model類文件都會對應著一個數(shù)據(jù)表(或者視圖),模型與數(shù)據(jù)表存在一種映射關系。TP約定了命名要遵循一定的規(guī)范,如果不符合,則需要根據(jù)情況進行額外的相應設置。例如Model類的tableName屬性據(jù)庫中,已建立了一個think_form數(shù)據(jù)庫表,并且在配置文件中,我們定義了數(shù)據(jù)表的前綴是think_,模型類(Model)文件的命名規(guī)則是:不包括前綴的數(shù)據(jù)庫表表名并且首字母大寫+所以之前我們?yōu)閠hink_form數(shù)據(jù)表在Myapp/Lib/Model目錄下建立一個文件模型類的e可以命名為。默認配置便可以智能識別自動對應think_new_table表,因此不必修改配置。開發(fā)過程中,只要簡單地定義好與數(shù)據(jù)表對應的模型類(),就可以進行對數(shù)據(jù)操作了。如一般來說,在表中添加數(shù)據(jù)都是通過表單來建立,為了更直觀地學習CURD中的C,我們接下來建立個表單來進行添加數(shù)據(jù)的操作。之前我們已在Myapp/Lib/Model/下建立好類模型(M)x據(jù)操作的處理過程。我們在實際操作中體會一下。protected$_auto=array(array('create_time','time','ADD','function'),e函數(shù)作為該字段的值進行自動填充。nprotected$_auto=array(array('password','md5','ADD','function'),當使用function作為附加規(guī)則時,第二個填充內容就代表了這個因子是一個函數(shù)名稱,該函數(shù)的參數(shù)就是代表填充字段的值,比如password的值是123456,則上面的代碼會先將這個值使用函數(shù)md5('123456'),這樣處理后再插入到數(shù)據(jù)表中去。對于function(函數(shù))和callback(回調方法)理論是一樣的,只不過一個是表示填充內容所寫的是函數(shù)名,另一個是表示填充內容是類中的方法名。函數(shù)可以是PHP5內置函數(shù)或而callback是當前模型類所能調用的一個方法。有關數(shù)據(jù)填充方面的詳細資料,請參看官方使用手冊《ThinkPHP數(shù)據(jù)操作指南》<!DOCTYPEHTMLPUBLIC"-[<AHREF="javascript:()">返回</A>]');}}1:將根目錄中的原剪切并粘貼到Myapp文件夾下。更改代碼為:/ThinkPHP');;/');變量(Action)。URLMODELrewrite能去除顯示所以,現(xiàn)在我們的代碼是if(!defined('THINK_PATH'))exit();returnarray(法的命名很符合語言使用習慣,原來的add,update,all很直觀,易記,可惜沒了)array('field','填充內容','填充條件','附加規(guī)則',[額外參數(shù)])alias_import($alias,$classfile='')快速定義和別名導入這是新增的函數(shù),我嘗試注解一下,不正確請指正。該函數(shù)可以動態(tài)設置文件列表導入和直接導入文件,常會用到的文件別名有'Page'分頁類','ViewModel'視圖模型類','AdvModel'高級模型類','RelationModel'關聯(lián)模型類',當要引入已定義別名的文件,我們只要直接在參數(shù)中傳遞別名就行了。n除了使用已定義的別名外,也可以使用動態(tài)指定。alias_import('zzg',APP_PATH.'/Lib/ORG/');或一次引入多個文件$ailias=array('Abc'=>'Efg'=>APP_PATH.'/Lib/ORG/',APP_PATH.'/Lib/Other/',alias_import($ailias);注:指定文件或別名不存在時會返回false類似的函數(shù)還有import($class,$baseUrl='',$ext='.')由于性能問題,這個方式以后不再支持復導入,沖突時會提示錯誤。使用這方法時,系統(tǒng)會自動識別導入類庫文件的位置:ORGThinkPHPLibORG目錄TPThinkORGTP項目注意1使用時要注意文件名的大小寫Import.轉換為/,如果文件名中含有.,則要將.改為#才能正常導入。注意3導入的類文件后綴默認是.2第三方框架類庫導入:vendor($class,$baseUrl='',$ext='.php'),起始目錄統(tǒng)一是ThinkPHP/Vendor默認后綴是.php說明3,原來的模板文件保持不變,因為我們已啟用了DISPATCH_ON開關。僅將Myapp/Lib/Action/代碼更改如下classIndexActionextendsAction{publicfunctionindex(){$Form=D("Form")->select();[<ahtef="javascript:()">返回</a>]');}$rs=$Form->add();[<aHREF="javascript:()">返回</a>]');}}}ox{width:600px;margin:10pxauto;border:1pxdashed#e8e8e8;padding:5px;}.submit{height:2em;padding:05px;cursor:pointer;}</style></head><body><formaction="__URL__/add"method="post"name="formname"id="formname"class="box"><p><labelfor="title">標題:</label><inputname="title"type="text"id="title"/></p><p><labelfor="email">郵箱:</label><inputname="email"type="text"id="email"/></p><textareaname="content"rows="6"cols="50"id="content"class="textarea"></textarea><p><inputname="submit"type="submit"value="提交"class="submit"/></p></form><p>由{$}發(fā)表于:<em>{$|date='Y-m-d',###}</em></p><p>{$}</p></div></iterate></body></html>在瀏覽器中輸入,可以看到在瀏覽器中輸入,可以看到現(xiàn)在已將數(shù)據(jù)顯示在模板了id的方式顯示在模板上?,F(xiàn)在模板顯示已設定好,我們來一起學習查詢的各種方法:所謂連貫操作,是TP利用__call方法來實現(xiàn)的一些特殊的Model類方法,可以對數(shù)據(jù)對象命名都很直觀易記,主要方法(參數(shù))有用于查詢表達式的'field'參數(shù)支持如下鍵名table指定表名稱,可以跨表訪問,若不填則是當前DAOdistinct指定是否只列出不重復數(shù)據(jù),如果想列出不重復數(shù)據(jù),則為true,不填則無此功能field指定要搜索的字段,不填則為*ere詢條件K使用數(shù)組指定查詢條件$whereArr=array("account"=>"tdweb","home"=>"China"$options=array("where"=>$whereArr$Dao->select($options);這樣默認是查詢SELECT*FROM`test`WHERE(`account`='tdweb')AND(`home`='China')是查詢相等條件的。們稍微改下程序publicfunctiontestDb(){C('LIKE_MATCH_FIELDS',"account");$Dao=D("Test");$whereArr=array("account"=>"tdweb","home"=>"China"$options=array("where"=>$whereArrdump($Dao->select($options));echo$Dao->getLastSql();}='China')接著,可以看如下代碼publicfunctiontestDb(){$Dao=D("Test");$whereArr=array("account"=>array("eq","tdweb"),"home"=>array("like","%Chi%"),"age"=>array("between","1,3")$options=array("where"=>$whereArrdump($Dao->select($options));echo$Dao->getLastSql();}這里的$whereArr定義為一個二級數(shù)組,沒一個字段都定義了一個數(shù)組,這樣可以支持更高EQ相等NEQ不相等GT大于EGT不大于LT小于ELT不小于NOTLIKE不相似LIKE相似NULL空NOTNULL不為空EXP使用自己寫的表達式如何去消化這段內容,將在下一節(jié)以我們的實例Myapp中實操去體會。8節(jié)視圖查詢ThinkPHP提供了視圖查詢應用,利用視圖查詢可以將多個數(shù)據(jù)表的字段內容按需要進行指合查詢,非常方便和簡單。例如在項目中,我們定義有三個表,useruser_info用戶基礎表,部門分類表現(xiàn)在我們需要獲取某個用戶信息,該信息要包括用戶的帳號名稱和相關資料與及所在部門的名稱,這時候我們可以利用視圖查詢進行處理。讓我們在實際操作中去體會。1構建一個新項目并進行相關配置(可參考前面的教程,這里省略)2創(chuàng)建一個數(shù)據(jù)庫tpview,并添加這三個表用戶表CREATETABLE`think_user`(`id`int(11)unsignedNOTNULLAUTO_INCREMENTCOMMENT'ID編號',`name`varchar(20)NOTNULLCOMMENT'帳戶',`password`varchar(32)NOTNULLCOMMENT'密碼',`dept_id`smallint(6)unsignedNOTNULL,`status`tinyint(1)unsignedNOTNULLDEFAULT'1'COMMENT'開放狀態(tài)',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8COMMENT='會員表'AUTO_INCREMENT=2;INSERTINTO`think_user`(`id`,`name`,`password`,`dept_id`,`status`)VALUES(1,'zzguo28','123456',2,1);用戶信息表CREATETABLE`think_user_info`(`user_id`int(11)NOTNULLCOMMENT'用戶id',`nick_name`varchar(30)NOTNULLCOMMENT'用戶昵稱',`email`varchar(100)NOTNULLCOMMENT'郵箱地址',`address`varchar(100)NOTNULLCOMMENT'詳細地址',`gender`tinyint(1)NOTNULLDEFAULT'0'COMMENT'性別',`mobile`varchar(100)NOTNULLCOMMENT'手機號碼',`telephone`varchar(100)NOTNULLCOMMENT'電話號碼',KEY`user_id`(`user_id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='用戶信息表';INSERTINTO`think_user_info`(`user_id`,`nick_name`,`email`,`address`,`gender`,`mobile`,`telephone`)VALUES部門分類表CREATETABLE`think_dept`(`id`smallint(3)NOTNULLAUTO_INCREMENT,`name`varchar(50)NOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=4;INSERTINTO`think_dept`(`id`,`name`)VALUES3在項目/Lib/Model下創(chuàng)建這三個表的基礎模型Model本示例沒涉及到驗證等其它功能,所以只要簡單定義測可,例如classUserModelextendsModel{}>操作。4創(chuàng)建視圖模型,代碼如下,詳細注解見其后:建議使用動態(tài)擴展功能去使用視圖查詢,而不再是本教程的繼承方式。那樣使用會更靈活。import('ViewModel');classUserViewModelextendsViewModel{protected$viewFields=array('User''UserInfo'=>array('id','name','_as'=>'u','_type'=>'left'),=>array('email','mobile','_as'=>'ui','_on'=>'='),'Dept'=>array('name'=>'dept','_on'=>'='),}>在行2代碼中,因為版已將視圖查詢分離出原Model類,所以這里需要使用import方法引型類。行3代碼中,定義了該模型名稱為UserViewModel,視圖模型的名稱Model前的命名是隨意的,只是為了有別于其它模型,通常我們會以xxxViewModel這樣的方式去命名。并且一定格式是protected$viewFields=array(t使用同樣的方式添加。classIndexActionextendsAction{publicfunctionindex(){$dao=D('UserView');$where['']=1;dump($dao->where($where)->find());dump($dao->getLastSql());}}>然后訪問該操作,可以看到我們成功取得所需的查詢內容:array(1){[0]=>array(5){["id"]=>string(1)"1"["name"]=>string(7)"zzguo28"["email"]=>string(17)""["mobile"]=>string(11)""["dept"]=>string(9)"銷售部"}}"SELECTASid,ASname,ASemail,ASmobile,ASdeptFROMthink_useruLEFTJOINthink_user_infouiON=JOINthink_deptDeptON=WHERE(=1)LIMIT1"不過視圖模型只能用于查詢,要關聯(lián)更新寫入可以使用關聯(lián)模型第9節(jié)關聯(lián)操作ThinkPHP高級模型類中提供了對關聯(lián)操作的支持。由于關聯(lián)查詢在定義和操作方面相對來,其實使用起來也并不算復雜,對于需要同時對多表進行寫入、更新、查詢和刪除的情況,比并不會相差多少。下面我們以一個實例來講述表的關聯(lián)操作簡單用法。求分析:在一個項目中,需要建立一個全面的會員資料檔案,這個檔案要包括:會員的基本資料;會員的詳細資料;會員所在地區(qū):東區(qū)、南區(qū)、西區(qū)、北區(qū);會員的興趣群組:琴、棋、書、畫;useruser_inforearoup會員基本表會員詳細資料表地區(qū)表興趣群組表消費卡帳號記錄表HAS_ONE1BELONGS_TO2HAS_MANY3MANY_TO_MANY41所有的資料都是以會員來聯(lián)系,因此我們將以會員基本表user為核心。2每個會員都有一份自己的詳細資料,屬于一對一關系,因此user_info表使用HAS_ONE3每個會員都屬于其中一個地區(qū),是從屬關系,因此area表使用BELONGS_TO關聯(lián)4會員的興趣可能是一種或幾種,各種興趣自然也有多個用戶,是多對多關系,因此groupTP關聯(lián)操作的中間表定義有個默認規(guī)則(主表_關聯(lián)表),如果不是這種形式,可以使用這里使用默認規(guī)則,所以要多添加一個表user_group作為中間表。表會員基本表CREATETABLE`think_user`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`name`varchar(25)NOTNULLCOMMENT'名稱',`area_id`smallint(3)NOTNULLCOMMENT'地區(qū)id',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=3;會員詳細資料表CREATETABLE`think_user_info`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`user_id`mediumint(6)NOTNULLCOMMENT'會員ID',`email`varchar(255)NOTNULLCOMMENT'郵箱地址',`nickname`varchar(50)NOTNULLCOMMENT'昵稱',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='詳細資料表'AUTO_INCREMENT=1;地區(qū)表CREATETABLE`think_area`(smallintNOTNULLAUTOINCREMENTCOMMENTid`name`varchar(50)NOTNULLCOMMENT'地區(qū)名稱',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='地區(qū)表'AUTO_INCREMENT=5;INSERTINTO`think_area`(`id`,`name`)VALUES興趣群組表CREATETABLE`think_group`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`name`varchar(50)NOTNULLCOMMENT'群組名',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=5;INSERTINTO`think_group`(`id`,`name`)VALUES消費卡帳號記錄表CREATETABLE`think_card`(idmediumintNOTNULLAUTOINCREMENTCOMMENTID編號',OMMENTID`card`varchar(25)NOTNULLCOMMENT'消費卡帳號',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='興趣消費卡表'AUTO_INCREMENT=5;會員與群組的中間表CREATETABLE`think_user_group`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`group_id`mediumint(5)NOTNULLCOMMENT'群組ID',`user_id`mediumint(5)NOTNULLCOMMENT'會員ID',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=1;關聯(lián)操作必需建立基礎表,在項目配置文件里面定義好數(shù)據(jù)庫的連接信息后,我們在項目/Lib/Model下對應數(shù)據(jù)表建立各個基礎模型類(中間表無需建立模型)classUserInfoModelextendsModel{}.格式描述中,對于屬性我們使用了一個修飾詞:該表的關聯(lián)方式的屬性。操作其實也很簡單。各種關聯(lián)關系去對號入座。完整方式的定義,替換上面的格式,會類似這樣,這里以Area表進行示例說明允許定義的屬性這個概念classUserModelextendsModel{protected$_link=array('Area'=>array('mapping_type'=>BELONGS_TO,'mapping_name'=>'Area','class_name'=>'Area','foreign_key'=>'area_id',}上面代碼中,mapping_type,foreign_key...這些,就是允許定義的屬性所有可定義的屬性概述mapping_type用以定義該表與主表的關聯(lián)類型mapping_type所定義的內容必須是常量,共有下面四種方HAS_ONE表示當前模型(主表)擁有一個子對象,例如本例中的user_info,每個會員對應一個資料表Belongs_to表示當前模型從屬于另外一個父對象,例如每個會員都從屬于一個地區(qū)HAS_MANY表示當前模型擁有多個子對象,例如每個用戶有多個興趣消費卡MANY_TO_MANY表示當前模型可以屬于多個對象,而父對象則可能包含有多個子對象,通常興趣組可以有多個用戶class_name要關聯(lián)的模型類名稱。例如示例代碼所定義的Area,再次提醒,一定要確保已定義了此模型類(AreaModel)。mapping_name關聯(lián)的映射名稱,用于獲取數(shù)據(jù)用,作為數(shù)據(jù)集中與主表字段并列的數(shù)據(jù)索引。該名稱不能與當前模型的字段重復,否則會導致關聯(lián)數(shù)據(jù)獲取的沖突mapping_name沒有定foreign_key關聯(lián)的外鍵名稱foreign_key如果沒定義,則默認是當前數(shù)據(jù)對象名稱+_id作為外鍵置)那么think_user表的外鍵默認為user_id,如果不是,就用該屬性進行顯式指定,例如數(shù)據(jù)表定義的外鍵是userId,則使用'foreign_key'=>'userId',這種方式去申明Condition性進行定義mapping_fields關聯(lián)要查詢的字段如果沒有定義,默認關聯(lián)查詢的關聯(lián)數(shù)據(jù)是該關聯(lián)表的全部字段。如果僅僅是需要查詢其中的個別字段,可以使用該屬性進行指定as_fields直接把關聯(lián)的字段值映射成數(shù)據(jù)對象中的某個字段的字段名稱有沖突時,可以使用下面這種方式進行定義:'as_fields'=>'email,nickname:username',沒有定義該屬性時數(shù)據(jù)類似于:["id"]=>string(1)"2"["name"]=>string(8)"thinkphp"["Card"]=>array(1){[0]=>array(1){["card"]=>string(8)""}如果定義了映射,則類似于["id"]=>string(1)"2"["name"]=>string(8)"thinkphp"["card"]=>string(8)""parent_key自引用關聯(lián)的關聯(lián)字段自引用關聯(lián)是一種比較特殊的關聯(lián),也就是關聯(lián)表就是當前表。mapping_limitmapping_orderrelation_foreign_key關聯(lián)表的外鍵名稱(MANY_TO_MANY獨有屬性)默認的關聯(lián)表的外鍵名稱是表名+_id如果不符合,可通過此屬性進行指定relation_table關聯(lián)的中間表名稱(MANY_TO_MANY獨有屬性)condition如果沒有設置該屬性,默認通過當前模型的getRelationTableName方法來自動獲取roup是:如果兩個表存在一個對應的中間表,該中間表的命名方式為數(shù)據(jù)表前綴+_+關聯(lián)操作的主表名+_+關聯(lián)表名例如本示例中,由think_user表操作關聯(lián)表,所以和think_group表的中間表名稱是thinkusergroupthinkgroup作,那么中間命名是think_group_user,中間表通常只是由user_id和group_id構成就可以了。如果中間表不符合上面的規(guī)則,則需要通過該屬性去顯式指定中間表名稱。各種關聯(lián)關系類型可用屬性歸納如下,使用中可對照此表和參考上面定義解釋HAS_ONE可用屬性mapping_typeclass_namemapping_nameforeign_keyconditionmapping_fieldsas_fieldsBELONGS_TO可用屬性mapping_nameforeign_keymapping_fieldsparent_keyas_fieldsHAS_MANY可用屬性mapp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度主題酒店婚禮宴席定制服務合同
- 二零二五茶山資產(chǎn)交易與茶葉品牌戰(zhàn)略規(guī)劃合同
- 2025年度老年人贍養(yǎng)費用支付及護理服務合同
- Unit 4 Did You Have a Nice Trip?Lesson 24 A Gift for Little Zeke 同步練習(含答案含聽力原文無聽力音頻)
- 2025年度餐廳服務員職業(yè)發(fā)展規(guī)劃與晉升合同
- 二零二五年度汽車美容店市場營銷人員用工合同規(guī)范
- 二零二五年度工傷賠償協(xié)議范本(服裝行業(yè))
- Unit 3 Learning better 閱讀綜合能力訓練(含答案)
- 2025年陽江貨運從業(yè)資格證考試技巧
- 2025年武漢貨運從業(yè)資格證模擬考試試題答案解析
- 婦女兩癌篩查培訓
- 印刷品承印五項管理新規(guī)制度
- 2024年湖南鐵路科技職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
- CPK過程能力分析報告
- 店鋪診斷報告
- 2024陜西延長石油集團礦業(yè)公司所屬單位招聘筆試參考題庫附帶答案詳解
- 早期介入與前期物業(yè)管理-物業(yè)承接查驗(物業(yè)管理課件)
- 安徽省六安市裕安中學2023-2024學年八年級上學期第一次月考數(shù)學試卷(含答案)
- 2024全新全國境內旅游合同
- 全光方案華為
- 2024年黑龍江省專升本考試法學基礎模擬試題含解析
評論
0/150
提交評論