鍍金池/ 問答/ PHP問答
青黛色 回答

可以把它簡(jiǎn)單理解為操作數(shù)據(jù)庫(kù)的工具,把數(shù)據(jù)庫(kù)查詢操作的邏輯,映射為函數(shù)方法。
例如SQL的where 映射為where()函數(shù)。

我昨天開源了的composer組件 https://github.com/AxiosCros/...
用它的Db類可以進(jìn)行數(shù)據(jù)庫(kù)的連接、查詢等操作。

DBA的作用是設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu),管理維護(hù)因?yàn)闃I(yè)務(wù)變化而帶來的數(shù)據(jù)結(jié)構(gòu)變化,
同時(shí)更重要的任務(wù)是保證數(shù)據(jù)庫(kù)運(yùn)行的穩(wěn)定安全。

而ORM的作用,是讓編程語言以更友好的方式與數(shù)據(jù)庫(kù)進(jìn)行“溝通”。通過封裝的方法,讓開發(fā)者輕易的實(shí)現(xiàn)數(shù)據(jù)庫(kù)的查詢,而不需要直接寫SQL語句。

不二心 回答

web目錄下的.htaccsee完整配置,不論是一級(jí)域名還是二級(jí)域名都可以訪問,已經(jīng)經(jīng)過測(cè)試:

Options +FollowSymlinks
IndexIgnore */*
RewriteEngine On

RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

RewriteRule \.svn\/ /404.html
RewriteRule \.git\/ /404.html
安若晴 回答

你這是標(biāo)準(zhǔn)的多對(duì)多模型關(guān)聯(lián)
在你的資源Model里定義個(gè)新方法:

public function tags()
{
    return $this->belongsToMany('標(biāo)簽Model');
}

然后:

資源Model::query()
->tags()
->whereIn('res_id',[1,3,5])
->orderBy('create_time','desc')
->limit(5)
->get();

2017-12-5
試試:

ResModel::whereHas('knowledge', function ($query) use ($knowledge_ids) {
    $query->whereIn('knowledge_id', $knowledge_ids);
})
->orderBy('created_at', 'desc')
->limit(5)
->get();
入她眼 回答

js直接toString

["nGw84406638oT", "eZF84405438TY", "zsCP8726987"].toString()
雨蝶 回答

你先打印你的parameter,然后傳json格式數(shù)據(jù),后臺(tái)$data = $this->input->post("data");

短嘆 回答

開啟事務(wù),只有操作都成功之后再commit提交事務(wù),如果操作有失敗的就rollback回滾。
$model->startTrans();
$row = $model->where(['id'=>1])->update(['status'=>4]);
if ($row>0) {
//上面操作成功
//執(zhí)行自定義操作
$model->commit();
}else {
$model->rollback();
}

離夢(mèng) 回答

感謝邀請(qǐng),看了題目后主要不知道你咋安裝的,所以沒法提供卸載辦法。我一般多版本安裝會(huì)自己建立PHP52PHP53PHP54...這樣的目錄,對(duì)應(yīng)的版本只安裝在對(duì)應(yīng)的目錄中,不管改配置還是刪除都很輕松。

任她鬧 回答

我大概懂了,你看是不是以下你想要的結(jié)果.

$str = <<<EOF
{
    "msg": "ok",
    "status": 1,
    "data": {
        "id": 155,
        "title": "自家的蘋果",
        "content": "<p>自家的,要的聯(lián)系,包郵。</p>",
        "create_time": "2018-01-26 17:24:55",
        "avatar": "https://think.weipintui.com/uploads/20180126/f9a31f83b9ba56afeaddfb8b708692a9.png",
        "pics": [
            {
                "url": "https://think.weipintui.com/uploads/20180126/da426c2213b9653450e5752b4eb20509.png"
            },
            {
                "url": "https://think.weipintui.com/uploads/20180126/bd6cde8ed6a0cb8b3bcb336c19f0d5ae.png"
            },
            {
                "url": "https://think.weipintui.com/uploads/20180126/681eec67bbfa5ad4b370fae019e45ea2.png"
            }
        ]
    }
}
EOF;
$data = json_decode($str,true);
$data = $data['data'];
// 這里是去除掉pics下面的url
$data['pics'] = array_column($data['pics'],'url');
print_r($data);exit;

打印得到的結(jié)果

Array
(
    [id] => 155
    [title] => 自家的蘋果
    [content] => <p>自家的,要的聯(lián)系,包郵。</p>
    [create_time] => 2018-01-26 17:24:55
    [avatar] => https://think.weipintui.com/uploads/20180126/f9a31f83b9ba56afeaddfb8b708692a9.png
    [pics] => Array
        (
            [0] => https://think.weipintui.com/uploads/20180126/da426c2213b9653450e5752b4eb20509.png
            [1] => https://think.weipintui.com/uploads/20180126/bd6cde8ed6a0cb8b3bcb336c19f0d5ae.png
            [2] => https://think.weipintui.com/uploads/20180126/681eec67bbfa5ad4b370fae019e45ea2.png
        )

)

有點(diǎn)lower,請(qǐng)諒解一下

單眼皮 回答

如果指定的文件如果不是有效的圖像,會(huì)返回 false

getimagesize() 函數(shù)將測(cè)定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 圖像文件的大小并返回圖像的尺寸以及文件類型和一個(gè)可以用于普通 HTML 文件中 IMG 標(biāo)記中的 height/width 文本字符串。

還有g(shù)etimagesize 并不依賴GD庫(kù)

陌如玉 回答

你存儲(chǔ)二叉樹的這個(gè)方法沒什么問題。你說從redis拿到了所有的子孫節(jié)點(diǎn)的id,然后去數(shù)據(jù)庫(kù)用in過濾當(dāng)天的新增節(jié)點(diǎn)。是這樣嗎? select * from tab where id in (ids) and date =sysdate; 那么就是如果子孫節(jié)點(diǎn)很多,這個(gè)ids就會(huì)非常大。我不知道你是不是想這個(gè)樣。但是你現(xiàn)在存在redis的id和score都可以做關(guān)系型數(shù)據(jù)庫(kù)的索引(id相當(dāng)于主鍵,distinct(score)最大是2),所以沒必要存在非得用redis。再針對(duì)業(yè)務(wù)中經(jīng)常出現(xiàn)的查詢條件做一下hash,比如這個(gè)日期就可以。如果每天新增的數(shù)據(jù)量很多的話甚至可以做一下分表。

風(fēng)畔 回答

exception 是php內(nèi)置類。

core.php 是phpstorm自帶的文件,作用類似索引php內(nèi)置的函數(shù)和類 ,用來做代碼提示的

厭惡我 回答

我認(rèn)為,好的 IDE 能大大的提高你的開發(fā)效率。本人使用的是 PHPStorm,雖然很重量,但是用起來十分方便。對(duì)于初學(xué)者很友好。

故林 回答

那就直接先吧修改后的值,post到后臺(tái)存到數(shù)據(jù)庫(kù),然后后臺(tái)把數(shù)據(jù)庫(kù)里的數(shù)據(jù)再全部返給你,你commit一個(gè)mutilations,再修改state,頁面就自動(dòng)更新了呀。舉個(gè)修改列表數(shù)據(jù)的例子

import axios from 'axios';
const listData = {
  state:{
    list:null
  },
  mutations:{
    CHANGE_LIST(state,payload){
      state.list = payload
    }
  },
  actions:{
    changeListAction({commit}){
      axios.post("你后端的接口",{key:val}).then(res=>{
        if(res.data.result){
          commit("CHANGE_LIST",res.data.data)
        }
      })
    }

  }
};
export default listData

修改數(shù)據(jù)的時(shí)候,在組件中:

this.$store.dispatch('changeListAction');

你在組件中取數(shù)據(jù)的時(shí)候:

const listData = this.$store.state.resource.list
誮惜顏 回答

首先看一下你的html標(biāo)簽閉合是否正確。然后檢查一下是否存在全局問題事件監(jiān)聽,如$document.on(click)等。最后,如果使用jQuery 控制單選復(fù)選,最好使用attr和prop兩個(gè)方法同時(shí)控制其狀態(tài)。

短嘆 回答

從領(lǐng)域模型來看,余額不是用戶自身的屬性,【用戶】依賴【余額】,【余額】關(guān)聯(lián)【用戶】,所以分開存儲(chǔ)更合理。如果因?yàn)橛囝~的變更而引起用戶信息改變,或刪除用戶后造成用戶余額不可訪問,這個(gè)聽起來是有問題的。況且用戶和余額可能分別有各自的狀態(tài)。

涼心人 回答

你是使用的中國(guó)鏡像把。中國(guó)鏡像需要一段時(shí)間同步。你可以切換回原網(wǎng)鏡像

誮惜顏 回答

已解決,yaf不支持PATH_INFO模式,在路由重寫之后,關(guān)閉掉PATH_INFO模式即可

情已空 回答

如果是修改一個(gè)表的字符集的話,用這個(gè)去試試
alter table books convert to character set utf8mb4_unicode_ci;

離人歸 回答
  1. F12瀏覽器調(diào)試模式,查看靜態(tài)資源時(shí)長(zhǎng)
  2. 開啟APP_DEBUG,開啟頁面Trace
  3. 查看其中SQL,在終端執(zhí)行SQL