商城PHP筆記
搭建環(huán)境,運(yùn)用框架,渲染模板,頁(yè)面跳轉(zhuǎn)
1、啟動(dòng)環(huán)境,mamp直接設(shè)置host,自動(dòng)修改hosts文件
2、設(shè)置虛擬主機(jī),tp框架引入,在shop下新建index.php文件,include tp框架,運(yùn)行,shop下自動(dòng)生成三個(gè)文件夾:common、home、runtime
3、shop/common/conf/config.php 設(shè)置home/public下的js、image、css路徑
4、運(yùn)行index看到內(nèi)容,更改index.html路徑
5、index.html點(diǎn)擊登錄,注冊(cè)跳轉(zhuǎn)不顯示頁(yè)面,路徑?jīng)]設(shè)置對(duì),用常亮CONTROLLER等action module。U函數(shù)也可以
6、建立后臺(tái)模塊
7、建立很多文件夾,控制器,模板。更改路徑等
8、點(diǎn)擊后臺(tái)品字形展示商品,修改href,target
數(shù)據(jù)庫(kù),layout布局,提交表單添加數(shù)據(jù)入庫(kù)
1、goods表,varchar長(zhǎng)度設(shè)置幾就是限制幾個(gè)漢字或者字母
2、連接數(shù)據(jù)庫(kù)相應(yīng)超級(jí)慢?。。。?!原因是:數(shù)據(jù)庫(kù)配置我寫了hosts域名,應(yīng)該寫localhost,??,/Library/WebServer/Documents
3、遇到跳轉(zhuǎn)注冊(cè)顯示不出來的情況,原因是href和實(shí)際模板名稱不對(duì)應(yīng)
4、使用layout,解決多模板部分重復(fù)問題。a.在home的conf下,配置layout_on=>true, layout_name=>’layout’,b.layout模板中用{CONTENT}
5、可以單獨(dú)使用另外的布局{NOLAYOUT} <layout name="Pub/layout2"/>在html模板文件上使用就行了
6、創(chuàng)建plugin文件夾,引入富文本ueditor,a.head引入三個(gè)文件,b.標(biāo)簽id設(shè)置,c.執(zhí)行一個(gè)script函數(shù)。這個(gè)遇到一個(gè)問題,就是head引入的三個(gè)文件路徑有問題。布局混亂,設(shè)置textarea寬高就好了
7、添加數(shù)據(jù)入庫(kù):a.新建model類,自動(dòng)加載里設(shè)置添加和更新時(shí)間,b.控制器內(nèi)實(shí)例化model,create收集表單數(shù)據(jù),add入庫(kù)。注意,a.model文件命名,如add會(huì)有重復(fù)調(diào)用問題,b.注意表單name屬性命名要和數(shù)據(jù)庫(kù)字段一致,c.success方法,好像只能用U函數(shù)跳轉(zhuǎn)
8、xss攻擊,收集表單可能會(huì)有腳本,當(dāng)展示出來的時(shí)候可能會(huì)被執(zhí)行,tp已經(jīng)做了處理,但是ueditor不能過濾。這部分不是很明白
上傳圖片,制作縮略圖,展示list列表,分頁(yè)展示,修改數(shù)據(jù)庫(kù)(普通文本,單圖,相冊(cè)多圖)
1、添加模板中引入tab標(biāo)簽,根據(jù)命名技巧和js函數(shù)來操作對(duì)應(yīng)的內(nèi)容顯示和隱藏
2、上傳單張圖片,model類,瞻前顧后,數(shù)組配置 => $up = new \Think\Upload($conf) =>$z = $up>uploadOne($_FILES['goods_logo']); => $data['goods_big_logo'] = $up->rootPath.$z['savepath'].$z['savename'];
疑惑:$up用箭頭直接調(diào)用rootPath?
3、制作縮略圖
$im = new \Think\Image();
$im->open($data['goods_big_logo']);
$im-> thumb(60, 60);
$small = $up->rootPath.$z['savepath'].'small_'.$z['savename'];
$im->save($small);
$data['goods_small_logo'] = $small;
open和save需要的參數(shù)都是路徑字符串,縮略圖初始化不需要參數(shù),upload需要配置參數(shù)
4、js實(shí)現(xiàn)添加相冊(cè)
5、建立相冊(cè)表
6、瞻前顧后,選擇顧后,因?yàn)槟菚r(shí)候才能拿到goodsid
7、upload方法參數(shù)要穿數(shù)組?。。倓偩头噶诉@個(gè)錯(cuò)誤,savepath時(shí)間命名,savename隨機(jī)名稱
8、show列表展示,config文件宏定義'URL_WEBSITE' => 'http://www.czshop.com:8888/',這個(gè)當(dāng)時(shí)搞了一天?。。。。。∫?yàn)楦袷經(jīng)]對(duì)?,F(xiàn)象是在瀏覽器上報(bào)錯(cuò),查看代碼,重復(fù)出現(xiàn)域名路徑
9、用的封裝好的工具類,原理現(xiàn)在看不懂,注意接口,輸出不但可以輸出數(shù)據(jù)數(shù)組,還可以輸出標(biāo)簽字符串,很神奇
u函數(shù),在控制器內(nèi)U('show’),在模板里{:U('upd', array('goods_id'=>$v.goods_id))}不行,要用{:U(‘upd', array('goods_id'=>$v['goods_id’]))},方括號(hào)引用。
10、更改數(shù)據(jù):show表單href使用U函數(shù)傳遞goods_id,在控制器upd操作方法,I(‘get.goods_id’),find查詢,傳遞給upd模板,input表單value='{$info.goods_price}’,注意符號(hào)書寫否則會(huì)有問題。
11、保存save方法調(diào)用,表單必須有g(shù)oods_id,可以用hidden處理!!!!!!!
12、修改圖片,要在model類重寫update方法,剛剛有犯錯(cuò)了!!!!
13、更新logo圖片的時(shí)候要判斷之前是否有圖,有圖就刪掉unlink
14、刪除相冊(cè)圖片,模板標(biāo)簽onclick事件傳遞id,script用的ajax傳遞請(qǐng)求到控制器,控制器unlink圖片,delete表信息,模板根據(jù)id刪除標(biāo)簽節(jié)點(diǎn)
15、添加相冊(cè)圖片,在before_update上傳圖片,D函數(shù)用add方法添加圖片
下面嘗試自己給自己寫接口
1、ios pod安裝 ,1、具備pod環(huán)境 2、pod init 生成podfile文件,3、終端pod search afn 4、podfile文件填入終端結(jié)果 5、終端pod install安裝即可。afn已經(jīng)集成到工程里了
2、配置環(huán)境,手機(jī)瀏覽器訪問電腦ip,發(fā)現(xiàn)路徑指向了localhost,改變localhost指向 解決的。思考:是否有其他辦法
3、這時(shí),手機(jī)瀏覽器可以看到商品列表界面了,手機(jī)afn報(bào)400錯(cuò)誤,錯(cuò)誤請(qǐng)求或者不存在的域名
4、ios 更改http infoplist文件。注意:php那邊調(diào)用display方法,ios這邊afn打印為null
5、tableviewcell上可以正常展示圖片和文本了,開心
6、下面研究app post提交數(shù)據(jù)。前幾天也存在app post提交php $_POST收不到數(shù)據(jù),但是form表單post提交確可以。一直困擾我的問題終于解決了,那就是afn的request初始化manager.requestSerializer = [AFJSONRequestSerializer serializer];這句話不能要!?。。。。。。。。?!