鍍金池/ 問答/ PHP問答
單眼皮 回答

我不是大佬,我來說說我的想法吧。

首先是地區(qū)表示,你知道有種官方的編碼叫做行政區(qū)劃代碼嗎?這個在民政部可以查到,不過沒有格式化的數(shù)據(jù)。你也可以找網(wǎng)上別人已經(jīng)整理好的地區(qū)庫。

我們可以把代碼存放到數(shù)據(jù)庫中,也可以寫到文件中,這就看你自己了。

就拿你的例子來說,廣東省廣州市白云區(qū)的代碼是440111,浙江省杭州市西湖區(qū)是330106

其實代碼很好理解,每兩位數(shù)分別代表省、市、縣。

44就是廣東省,的33就是浙江省。
01在廣東省下就是廣州市,在浙江省下就是杭州市。

表示上級地區(qū)的,是在后面補0足6位。
比如廣東省就是440000,廣東省廣州市就是440100

所以我們保存某地區(qū)的公司時,只要把對應(yīng)的代碼存起來就行了。

比如公司表:
id name district
1 廣東省1公司 440000
2 廣東省2公司 440000
3 廣東省廣州市白云區(qū)公司 440111

在網(wǎng)頁地區(qū)選擇中,返回的value只要對應(yīng)價格兩位就夠了。

比如sheng=44&shi=01&xian=11

我們處理時補出三個代碼
440000、440100和440111

然后我們直接查找公司表

SELECT * FROM company WHERE district=440000 OR district=440100 OR district=440111;

然后返回結(jié)果,我們再一一檢查就行了。

當(dāng)然,可能公司很多,一次返回的結(jié)果太多了,我們可以先查詢440111的,有結(jié)果就返回,沒有就再查詢440100的,以此類推。

甚至,我們能在SQL中就完成這個操作

SELECT
  CASE
    WHEN EXIST(SELECT * FROM company WHERE district=440111) THEN (SELECT * FROM company WHERE district=440111)
    WHEN EXIST(SELECT * FROM company WHERE district=440100) THEN (SELECT * FROM company WHERE district=440100)
    ELSE (SELECT * FROM company WHERE district=440000)
  END;

當(dāng)然,你不想用地區(qū)代碼,想要自己編碼,甚至直接保存中文也是可以的,操作都是類似的。

以上代碼手機輸入,未經(jīng)過驗證,請自行搜索相關(guān)內(nèi)容理解后使用。

孤慣 回答

自己寫個autoload方法,然后spl_autoload_register注冊下就可以了

我不懂 回答

token方法來源于Laravel\Passport\HasApiTokens
Auth::user()->token()->client可以獲取到客戶端信息
e.g 獲取clietn_id
Auth::user()->token()->client_id

離魂曲 回答

微信沒有直接提供相應(yīng)的Api
不過你可以參考以下地址學(xué)習(xí)
https://segmentfault.com/q/10...

純妹 回答

@Corwien
圖片描述

錯誤就是這樣。

顯示有這個錯誤
libpng warning: iCCP: known incorrect sRGB profile
是否有用?


問題已解決:
因為是laravel-page-speed壓縮了導(dǎo)致圖片無法正常顯示
最后是排除路由解決的:
file

陌如玉 回答

一般用ab做壓力測試
db -c100 -n10000 c指并發(fā)數(shù) n指請求數(shù)
主要關(guān)注幾個指標(biāo)
QPS 吞吐量 這個值在并發(fā)數(shù)相等的情況下越大越好
TPR 響應(yīng)時間 這個值越小越好

殘淚 回答

接口獲取數(shù)據(jù)后,你對數(shù)據(jù)處理下啊,直接把 "不限制" unshift 到 typeList 數(shù)組里,然后你再進(jìn)行渲染不就行嗎

撿肥皂 回答

要單個驗證,可以靜態(tài)調(diào)用的哦

// 驗證是否有效郵箱地址
use think\facade\Validate;

Validate::isEmail('thinkphp@qq.com'); // true

如果驗證的東西比較多,建議還是推薦使用驗證器
驗證器類可以自定義目錄,建議放在 \app\index\validate目錄下。

驗證器類

namespace app\index\validate;

use think\Validate;

class User extends Validate
{
    protected $rule =   [
        'name'  => 'require|max:25',
        'email' => 'email',    
    ];
    
    protected $message  =   [
        'name.require' => '名稱必須',
        'name.max'     => '名稱最多不能超過25個字符',
        'email'        => '郵箱格式錯誤',    
    ];
    
}

在控制器里使用:

namespace app\index\controller;

use think\Controller;

class Index extends Controller
{
    public function index()
    {
        $data = [
            'name'  => 'thinkphp',
            'email' => 'thinkphp@qq.com',
        ];

        $validate = new \app\index\validate\User;

        if (!$validate->check($data)) {
            dump($validate->getError());
        }
    }
}
尋仙 回答

session_id 默認(rèn)是由cookie 走h(yuǎn)ttp請求發(fā)送到服務(wù)器的
由于cookie是同源同域策略,所以跨域的時候session_id 無法帶過去.

可以把session_id 走GET傳參的方式帶過去.只要其他域名帶上了相同的session_id 就能實現(xiàn)回話保持.

你好胸 回答
你是在登錄頁面去發(fā)起ajax請求時,通過 referer 獲取上一級頁面,肯定還是 login 這個頁面呀。

此時需要記錄原來的頁面,有兩種辦法:

  1. 點擊鏈接跳轉(zhuǎn)登錄頁面時帶上原頁面url參數(shù)比如: https://www.xxx.com/login?redirect_url=A頁面url
  2. 在登錄頁面,通過 referer,把上一個頁面獲取到。

在你的 ajax 請求完畢后,再跳轉(zhuǎn)回原頁面。

玩控 回答

兩個實際是一樣的,只不過127.0.0.1是ipv4的回環(huán)地址,::1是ipv6的。我覺得你可以試試在網(wǎng)卡屬性里把ipv6協(xié)議關(guān)掉,不過不保證一定有用(回環(huán)不走網(wǎng)卡)

陪她鬧 回答

鏈接帶參數(shù)作為識別就可以了

你的瞳 回答

看了半天有點暈。

你現(xiàn)在的環(huán)境,是不是其實是 nginx 容器收到 客戶端請求 a.php,之后這個 a.php 又去 請求 b.php?
如果是這樣的話,a.php 去找 b.php 這個動作是在 php.fpm 這個容器里完成的,而 php 容器應(yīng)該是既不知道 crm.domain.com 也不知道 api.domain.com ,因為那些本來都?xì)w nginx 管,php 容器看到的 127.0.0.1是他容器自身,里面只有個php-fpm可用,他看不到 nginx 的 80 端口。

本身上了docker之后多個容器之間溝通就是有難度的。

當(dāng)然這個需求本身是很常見,但是這么做不是很優(yōu)雅,一般來講如果有多個 domain ,個人建議是多開 nginx 并使用多端口獨立處理的。

如果只用一個 nginx 的話,最好不僅在 /etc/hosts 寫域名,還要在,還要寫好 expose 和 links ,最好使用compose,保證多個容器間可以不經(jīng)過宿主機直接通信。

奧特蛋 回答

只要是性能分析和自動跟蹤 可以關(guān)閉,注釋掉即可

;啟用性能檢測分析  
;xdebug.profiler_enable=on

;啟用代碼自動跟蹤  
;xdebug.auto_trace=on 
莫小染 回答

你要先搞懂問題的根本原因(php的作用域問題)。php的全局變量是不能直接在函數(shù)里直接訪問的

有點壞 回答

我說下我們的做法,我們每天的交易數(shù)據(jù)量是200萬以上,核心在后半夜交易量極少的情況下做跑批清算,這個動作每天只做一次,在早上上班之前跑出結(jié)果,然后由清算人員進(jìn)行人工審核。數(shù)據(jù)庫用的是oracle10g,公司購買的正版。即使是埋點,從運營角度出發(fā),也是要寫入日志庫,然后再做二次分析。

淺時光 回答

clipboard.png

clipboard.png

我測試了一下是正常的, 你的輸出有可能是舊程序的輸出
可以試著將cron停了, 過一段時間后再啟動排除干擾.