鍍金池/ 問答/ PHP問答
來守候 回答

https://easywechat.org/zh-cn/...

你看下 easywechat,實現(xiàn)微信網(wǎng)頁分享功能 so easy

涼薄 回答

使用<router-link to="/chat"><img src="chat.png"><img src="chat_focus.png"></router-link>配合css的first-child和last-child解決了問題。

款爺 回答

1.使用相應(yīng)api直接生成(谷歌有)或者使用php rq code代碼生成原始二維碼
2.用imagecopymerge合并圖片生成新的帶logo二維碼

澐染 回答
pm.max_requests = 200 # 每個php-fpm進程值接受200次請求,就自動殺死進程,應(yīng)為進程一直活著,進程占用的內(nèi)存會不斷增加,因為php執(zhí)行程序后會有殘余的內(nèi)存消耗
孤巷 回答

按了后退鍵,網(wǎng)頁是會隱藏關(guān)閉的。瀏覽器標簽頁被隱藏或顯示的時候會觸發(fā)visibilitychange事件??梢栽囋囘@個事件,曲線救國一下

忘了我 回答

沒有命名空間時,函數(shù)是注冊到全局函數(shù)表中,有命名空間后,命名空間下的函數(shù)帶有命名空間注冊到全局函數(shù)表中
function_exists("funname");是去全局函數(shù)表中查找函數(shù)是否存在
有命名空間的情況下,在函數(shù)名稱前加上命名空間即可

var_dump(function_exists('\Core\asd'));//bool(true)
var_dump(function_exists('\App\bbb'));//bool(true)
凝雅 回答

兩個表搞定。

  1. 用戶表

屬性:用戶ID,昵稱,頭像,等等用戶的屬性,不要手機號碼什么的

  1. 登錄方式表

屬性:主鍵ID,type(手機or微信openid以及其他類型),openid(手機號或微信openid等其他類型用到的id,varchar(40)),用戶ID,banned(是否禁止該方式登錄)

type+openid做一個索引。
綁定的話就在該表插入一條數(shù)據(jù)即可,不會混亂

抱緊我 回答
$data = array();
foreach ($chartData as $item) {
  if (isset($data[$item['add_time']])) {
    $data[$item['add_time']]['number'] += $item['viewTime'];
  } else {
    $data[$item['add_time']] = array(
      'date' => $item['add_time'],
      'number' => $item['viewTime']
    );
  }
}
$data = array_values($data);
echo json_encode($data);
囍槑 回答

第一個問題不太明晰。對于第二個問題,點擊下一頁后,前端通過js代碼得到 篩選條件以及下一頁對應(yīng)的頁碼值,生成 篩選參數(shù)以及頁碼參數(shù) 通過 get請求或其他請求 來訪問后臺,后臺通過附帶的 篩選參數(shù)以及頁碼參數(shù) 拼接出select語句 進行下一頁的查詢(通過limit關(guān)鍵字實現(xiàn)分頁的查詢)。

失魂人 回答

getTable方法在Model里面定義的是非靜態(tài)方法

public function getTable()

直接調(diào)用PHP就會跳出了一個Strict錯誤。

而調(diào)用Model::where的時候,由于where沒有在Model里面定義,PHP會找Model里面的__callStatic,將where方法代理到目標類里面。

Model的__callStatic方法注釋也解釋的很清楚

/**
 * Handle dynamic static method calls into the method.
 *
 * @param  string  $method
 * @param  array  $parameters
 * @return mixed
 */
public static function __callStatic($method, $parameters)
{
    $instance = new static;

    return call_user_func_array([$instance, $method], $parameters);
}
我以為 回答

不是模版, 是模型. 一般來說,最好把所有數(shù)據(jù)庫操作放在模型層.
在 MVC 中,

1. Model 代表數(shù)據(jù)和業(yè)務(wù)規(guī)則;
2. View 包含了用戶界面元素,例如文本,表單等;
3. Controller 則管理模型和視圖中的通信。
對于Model而言,最主要就是保存和輸出信息。
鏈接描述
愛礙唉 回答

沒用過Laravel,但是解決思路一樣的,哥子,我給你個偽代碼:

$transaction = (new Transaction());

try {
    $setBalanceResult = UserModel::model()->set('balance',-100.00);
    
    if (!$setBalanceResult) throw new \Exception('修改余額失??!');
    
    $createBalanceRecord = BalanceRecord::model()->create([
        'user_id' => $user_id,
        'content' => 'XXX使用了100元'
    ]);
    if (!$createBalanceRecord) throw new \Exception('寫入余額日志記錄失敗');
    
    $order = Order::model()->create([
        // 這里是訂單數(shù)據(jù)
    ]);
    if (!$order) throw new \Exception('訂單創(chuàng)建失敗');
    
    // 把發(fā)消息添加到發(fā)送消息隊列程序,通過隊列任務(wù)程序從隊列里取消息發(fā)送 start
    (new Queue())
        ->sendMsg('你的余額已經(jīng)變動')
        ->sendMsg('下單成功');
    // 把發(fā)消息添加到發(fā)送消息隊列程序,通過隊列任務(wù)程序從隊列里取消息發(fā)送 start 
    $transaction->commit(); // 沒有問題提交事務(wù)   
} catch(\Exception $e) {
    $transaction->rollback(); // 出錯事務(wù)回滾
    var_dump($e->getMessage()); // 打印錯誤,具體還可以進行異常返回到更上層
}
不討喜 回答

保存的話,占物理內(nèi)存=>站硬盤,不占內(nèi)存

臨時圖片不用保存,就像樓上說的驗證碼,其他的都先檢測有沒有生成好的,有就發(fā)給瀏覽器,沒有就生成

生性 回答

圖片描述

圖片描述

測試沒問題,看看Ajax是否傳遞過來了

敢試 回答

我自己解決了,原來是 需要運行npm run production 才會執(zhí)行壓縮~

風畔 回答

Redis Lpush 命令將一個或多個值插入到列表頭部。會得到當前鍵下有多少個數(shù)據(jù)的數(shù)量

短嘆 回答

沒明白你的意思,你是要做國際化嗎

熟稔 回答

鎖表的話體驗不好,前端會等待太久。
建議使用消息隊列。

  1. N個人點擊,直接入隊列,這個是順序入的。而且無鎖,性能很高
  2. 后臺開啟一個消費者進程從消息隊列讀取,這個時候的順序就是你要的順序

隊列 - 先進先出(FIFO,first in first out)

慢半拍 回答
'DATA_CACHE_TYPE' => 'Memcache',
'DATA_CACHE_TIME' => '7200',
'DATA_CACHE_PREFIX' => 'demo_',
'MEMCACHED_HOST' => '127.0.0.1',
'MEMCACHED_PORT' => '11211',

不過就算不加上,也是一樣的。只要'DATA_CACHE_TYPE' => 'Memcache',就行。
看看這個文件就知道了。
/ThinkPHP/Library/Think/Cache/Driver/Memcache.class.php