鍍金池/ 問(wèn)答
陌南塵 回答

兄弟,我遇到了跟你同樣的問(wèn)題。你解決了么?

舊酒館 回答

models ...interface{} 語(yǔ)法的參數(shù)接收到之后 models 應(yīng)該是 []interface{}
所以原樣傳遞給 RegisterModel 時(shí) 應(yīng)該 orm.RegisterModel(models...) 這樣寫(xiě)

我也遇到了相同的問(wèn)題,你有解決嗎

不討囍 回答

我們公司統(tǒng)一使用“阿里編碼規(guī)約”插件,如果沒(méi)有寫(xiě)注釋,IDE就會(huì)提示并給出demo示例告訴你要怎么寫(xiě)注釋;除此之外,還有很多其他的代碼規(guī)范提示,你們可以嘗試一下統(tǒng)一使用這個(gè)插件。
安裝教程:【https://blog.csdn.net/fuzhong...

clipboard.png

旖襯 回答

你只是想返回一個(gè)結(jié)果,但使用 throw 一般是拋出異常。
很多時(shí)候返回 status 為0,其實(shí)并不是異常。
我覺(jué)得這些時(shí)候使用 throw 是不合適的。
所謂的異常,應(yīng)該是“它本來(lái)應(yīng)該是這樣的,但結(jié)果卻不是”,才需要拋出異常。
比如你要處理一張圖片,傳的參數(shù)指向的文件存在,文件后綴也存在,但讀取數(shù)據(jù)后卻不能正確處理,這時(shí)拋個(gè)異常是可以理解的,但我個(gè)人覺(jué)得這還不夠好。

因?yàn)槲揖陀龅竭^(guò),使用 thinkPHP 3.2 的圖片處理類,遇到不能處理的圖片,直接拋出了異常,但其實(shí)對(duì)我來(lái)說(shuō),如果處理圖片有問(wèn)題 ,是可以直接跳過(guò)去的。

也就是說(shuō):只有“這一步如果出錯(cuò),后面的代碼執(zhí)行就完全沒(méi)有意義或者完全不能執(zhí)行”的時(shí)候才去拋出異常,否則只需要返回結(jié)果,給使用者(可能是控制器)去處理就好了。

對(duì)于樓主的需求,ThinkPHP 是有內(nèi)置的方法的,比如控制器中有 success() 和 error() 兩種方法來(lái)滿足樓主的需要,當(dāng)然,我個(gè)人比較喜歡 ThinkPHP 3.2的處理方式,比如簡(jiǎn)潔,ThinkPHP 5中的這兩個(gè)方法添加了不必要的參數(shù),寫(xiě)起來(lái)倒挺麻煩的。
但這兩個(gè)方法只在控制器中有,模型中默認(rèn)是沒(méi)有的,當(dāng)然,如果你喜歡的話,也可以加到模型中去。
但我個(gè)人同樣不太推薦。處理返回結(jié)果或頁(yè)面跳轉(zhuǎn)的任務(wù)還是交給控制器會(huì)比較好。

模型中,其實(shí)可以自己定義個(gè)類似的方法,比如:

function succ($data="",$status=1){
      return array(
       'status'=>$status,
       'info'=>$data,
    );
}

function error($msg=""){
  return succ($msg,0);
}

你在模型中直接 return succ($data);或 return error($msg);即可。

控制器中根據(jù)返回的數(shù)組,再使用$this->success()或$this->error();當(dāng)然,如果你在使用ThinkPHP 5,也像我一樣比較喜歡 ThinkPHP 3.2 的風(fēng)格,這兩個(gè)方法你是可以改成3.2的風(fēng)格的。

說(shuō)回樓主和你看到的大神的代碼,基本思想都差不多,只不過(guò)你直接返回一個(gè)數(shù)組,而“大神”卻直接拋出異常,我不喜歡這位大神的風(fēng)格。
但你和“大神”都喜歡寫(xiě)重復(fù)的 "status'=>1,"msg"=>......,我則比較喜歡把它裝進(jìn)函數(shù)或方法中,畢竟這兩個(gè)操作是使用非常頻繁的。

關(guān)于代碼中較多 if/else 的情況,我一般使用兩種方法解決:

  1. 短的判斷可以用三目運(yùn)算符代替;
  2. 很多時(shí)候 if 時(shí)使用了return ,后面就可以不寫(xiě) else 了 。

補(bǔ)充:

概括一下:

  1. 模型中建議使用 return ,而不是拋出異常,return 的數(shù)據(jù)可以自己封裝個(gè)函數(shù)或方法;(當(dāng)然,要結(jié)合業(yè)務(wù)的具體需求!)
  2. 拋出異常意味著程序的終止,在非必須的情況下不要這樣做;
  3. 控制器中直接使用 success 和 error 或 ajaxReturn 方法即可。

但如果把樓主看到的“大神”的代碼從模型中移到控制器的話,應(yīng)該是合理的(除了重復(fù)的代碼有點(diǎn)多外)。
我個(gè)人是不太喜歡使用 throw,但我查看了一下 ThinkPHP 5 和 ThinkPHP 3.2 的源碼,其中的 success和 error 方法除了使用參數(shù)復(fù)雜性不同外,還有一點(diǎn)區(qū)別就是 3.2直接使用 exit()結(jié)束程序,而 5.0 版本中使用的是 throw 一個(gè)異常類。

應(yīng)該有理由相信,使用 throw 可能會(huì)比如說(shuō) exit 更好。
于是,我找到一種說(shuō)法:

PHP調(diào)用exit退出腳本執(zhí)行不會(huì)導(dǎo)致PHP服務(wù)退出。
https://segmentfault.com/q/10...

我不了解底層的機(jī)制,但我覺(jué)得這種說(shuō)法是比較可信的。

練命 回答

加一個(gè)屬性 title=" ",中間有個(gè)空格,你試試

疚幼 回答

問(wèn)題已解決,是生命周期的問(wèn)題

離魂曲 回答

src那里,你jscss后綴是.json么。

心沉 回答

mongodb鏈接不是一個(gè)就夠了么,好像不會(huì)有問(wèn)題吧。還是有問(wèn)題你可以寫(xiě)成隊(duì)列同時(shí)執(zhí)行20條,有執(zhí)行完的出隊(duì)新任務(wù)入隊(duì)。

      // 1.獲取微信服務(wù)器Get請(qǐng)求的參數(shù) signature、timestamp、nonce、echostr
      // 2.將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序
      let array = [config.wechat.token, ctx.query.timestamp, ctx.query.nonce]
      array.sort()
      // 3.將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密
      let resultCode = _util.hashCry(array.join(''))
exports.hashCry = str => {
  const hashCode = crypto.createHash('sha1') // 創(chuàng)建加密類型
  return hashCode.update(str, 'utf8').digest('hex')
}
離夢(mèng) 回答

清空了數(shù)據(jù),刪除了索引模板重新導(dǎo)入,又好了……詭異

找到原因了,filebeat的版本號(hào)不一樣導(dǎo)致的,把索引的index_patterns改成filebeat-*就ok了。

拽很帥 回答

build/webpack.prod.conf.js
中 注釋掉這個(gè)
new webpack.optimize.ModuleConcatenationPlugin()
插件
試一下看看行不行

別硬撐 回答

錯(cuò)誤提示已經(jīng)說(shuō)了:
found: object with keys {},你的render函數(shù)里寫(xiě)的是

<div  >{this.props.reducerCity}</div>

實(shí)際上看了你的代碼應(yīng)該是

<div  >{this.props.reducerCity.cityName}</div>

執(zhí)行兩邊可能是因?yàn)槟鉺ettimeout修改了state,會(huì)導(dǎo)致重新渲染頁(yè)面

練命 回答

大概知道是為啥了,history模式嗎??jī)蓚€(gè)外聯(lián)文件用絕對(duì)路徑src="/static"試試

朽鹿 回答

不是很懂你的意思。
integer不就是你定義的范型Integer嗎?

網(wǎng)妓 回答

$appends 刪除后不能在讀取到username屬性,刪除后可以清理下緩存:php artisan cache:clear(執(zhí)行命令清除緩存)

傻丟丟 回答

1.在基目錄執(zhí)行命令
2.命令:java cn.kgc.PersonTest

注意:編譯命令 javac com/kgc/PersonTest.java 帶有目錄分割符和運(yùn)行命令不一樣

巫婆 回答
"scripts": {
    "dev-proxy": "webpack-dev-server --config webpack.dev.js --progress"
  }
npm run dev-proxy -- --NODE_PORT=125000
吃藕丑 回答

不是pm2 start pm2.json么?
啟動(dòng)腳本呢

做不到 回答

arguments是函數(shù)里所有參數(shù)的數(shù)組集可以用下標(biāo)訪問(wèn)對(duì)應(yīng)的參數(shù)。[].slice.call(arguments)這是argument調(diào)用數(shù)組的slice方法。 [this].concat([].slice.call(arguments))就是先slice再concat