鍍金池/ 問(wèn)答/ PHP問(wèn)答

首先回答第一個(gè)問(wèn)題

你要求的是 在 notice 表中存在,檢索的時(shí)候 排除notice表中有的數(shù)據(jù)

你可以這樣做,不需要模型關(guān)聯(lián)

首先,取出 notice 表中的數(shù)據(jù),只需要取出 user_id 字段的數(shù)據(jù)

public function getData(Notice $notic , User $user)
{

    $userIds = $notic->all()->pluck('user_id')->toArray();

    $users = $user->query()->whereNotIn('id' , $userIds)->get();

    dd( $users);
}
pluck 方法為給定鍵獲取所有集合值 , 在通過(guò) 查詢語(yǔ)句,使用 whereNotIn的 方式 查詢數(shù)據(jù)

第二個(gè)問(wèn)題 查詢當(dāng)前用戶的通知列表

不是通過(guò)自增 id 來(lái)查詢,前 100 條數(shù)據(jù),

如果是使用 sql 語(yǔ)句查詢 , 則使用 limit 0,100

使用laravel的話,則有一個(gè)take方法, 例如take(100)

hasWhere laravel 中好像沒(méi)有這個(gè)方法噢
何蘇葉 回答

檢查一下Maven Dependencies是否有spring-core.jar?或者存在多個(gè)版本?

離人歸 回答
  1. jwt有兩種tokenrefreshTokenaccessToken,兩個(gè)都可以在AuthServiceProvider設(shè)置過(guò)期時(shí)間
  2. 一種存在cookie里或localstorage里,一種存在session或sessionstorage
  3. laravel 把refreshToken放在cookie里,把accessToken和過(guò)期時(shí)間放在body里返回
  4. 前端按照返回?cái)?shù)據(jù)保存兩種token
  5. refreshToken過(guò)期則重新登錄,accessToken過(guò)期則用refreshToken換取accessToken
  6. 可以用命令php artisan route:list查看所有auth相關(guān)api的路由

下面是一個(gè)綜合方法:

public function proxy($grantType, array $data = [])
    {
        $data = array_merge($data, [
            'client_id'     => env('PASSPORT_CLIENT_ID'),
            'client_secret' => env('PASSPORT_CLIENT_SECRET'),
            'grant_type'    => $grantType,
        ]);

        $http = new Client();
        $response = $http->post(url('oauth/token'), ['form_params' => $data,]);

        $token = json_decode((string)$response->getBody(), true);

        return response()->json([
            'token'      => $token['access_token'],
            'auth_id'    => md5($token['refresh_token']),
            'expires_in' => $token['expires_in'],
        ])->cookie('refreshToken', $token['refresh_token'], 14400, null, null, false, true);
    }
終相守 回答

你可以使用更高層面的$resource服務(wù)來(lái)進(jìn)行上傳,參考官方文檔

離人歸 回答

您好,可以試試下面的命令,安裝下pcre-dev

  1. yum install pcre-dev
呆萌傻 回答

login方法中屬性和方法訪問(wèn)符"->"左右有空格,語(yǔ)法錯(cuò)誤。

柚稚 回答

1.將option的值改為和名稱一樣的值
2.或者將php里面的post值拼接my

純屬愚見(jiàn),僅供參考

維她命 回答

<live-player> 和 <live-pusher>,
需申請(qǐng)開(kāi)通。
<live-player> 可以播放從服務(wù)器獲得的音視頻流,是直播的播放端。
<live-pusher> 可以實(shí)時(shí)將手機(jī)攝像頭和麥克風(fēng)的信號(hào)推送到服務(wù)器,是直播的錄制端,這個(gè)功能需獲取用戶手機(jī)的攝像頭和麥克風(fēng)使用權(quán)限。
live-player

故人嘆 回答

首先是復(fù)雜度高的辦法

刪除的時(shí)候重新遍歷一下,把序號(hào)改過(guò)來(lái)

優(yōu)化方法

可以把序號(hào)和數(shù)據(jù)分開(kāi),刪除任意一條數(shù)據(jù)刪除最下面一個(gè)序號(hào)即可,這樣可以減少重新渲染的數(shù)量

尛曖昧 回答

可以在本地單獨(dú)拉一個(gè)1.0的分支,然后為這個(gè)分支的入口文件創(chuàng)建個(gè)軟鏈,放在一個(gè)固定的目錄,nginx配置的root就指向這個(gè)軟鏈,想切回2.0,就用2.0的入口文件軟鏈覆蓋掉原來(lái)的軟鏈即可(軟鏈?zhǔn)褂?code>ln -s命令創(chuàng)建)

茍活 回答

代碼貼上來(lái),報(bào)錯(cuò)錯(cuò)誤碼是什么

初念 回答

EvIo 有些特性:

  • 同作用域下,同類事件會(huì)相互覆蓋,后面定義的覆蓋前面的
  • 嵌套事件,需要再次執(zhí)行 Ev::run 才會(huì)觸發(fā),再次調(diào)用 Ev::run 后事件的執(zhí)行不可預(yù)測(cè)。

基于上面兩個(gè),我發(fā)現(xiàn)了一個(gè)特殊的現(xiàn)象:

function login($fd , $flag , $callback , $args){
    return new EvIo($fd , $flag , $callback , $args);
}

// 這種方式定義多個(gè)重復(fù)事件,都會(huì)觸發(fā) ..
// 無(wú)語(yǔ),但是目前就是用這種方式投入使用的
$one = login($socket , Ev::READ , null , null);
$two = login($socket , Ev::READ , null , null);

// 跑進(jìn)程
Ev::run();
命多硬 回答

1.可能是跨域了,看看瀏覽器控制臺(tái)有沒(méi)有報(bào)錯(cuò)
2.返回的數(shù)據(jù)格式不對(duì),你沒(méi)有設(shè)置響應(yīng)的格式

懶豬 回答

如果只有一臺(tái)主機(jī)跑php,驗(yàn)證碼存到session,問(wèn)題不大,如果訪問(wèn)量高了,首先應(yīng)該考慮做一個(gè)小的集群,比如兩三臺(tái)機(jī)器跑php,這個(gè)時(shí)候最好使用緩存redis/memcached存儲(chǔ)驗(yàn)證碼,這樣才能在跑php的幾臺(tái)服務(wù)器之間共享驗(yàn)證碼數(shù)據(jù)

使用$_FILES打印看看, 不行的話再試試

$data = file_get_contents("php://input");
var_dump($data);
情未了 回答

官網(wǎng)demo使用的CI框架,自己添加的代碼應(yīng)寫(xiě)在server-application-controlers 下面
訪問(wèn)的時(shí)候url為request域名+weapp+文件名
另外使用騰訊云小程序一鍵部署方案 并不提供給用戶服務(wù)器信息,只能通過(guò)微信開(kāi)發(fā)者工具上傳不輸代碼。

怪痞 回答

使用構(gòu)建器:

先搞個(gè)基礎(chǔ):

$queryBuilder = $this->getDI()->getModelsManager()
    ->createBuilder()
    ->addFrom('tableName', 't');

直接用Distinct:

$queryBuilder->distinct('t.id');

用列方法也可以, 不推薦:

$queryBuilder->columns('DISTINCT(t.id) AS id')

使用嚴(yán)格模型:

// we are waiting for it, but may still not be implemented
TableModel::find(array('distinct' => 'id'))
For count:

TableModel::count(array("distinct" => "id"));
And less recommended way according to previous answer:

TableModel::find(array('columns' => 'distinct(id)'))

抄襲自so
https://stackoverflow.com/a/3...

詆毀你 回答

最終發(fā)現(xiàn)重新創(chuàng)建一個(gè)文件 把原來(lái)文件的內(nèi)容復(fù)制過(guò)去就可以了

可能是之前使用了別的編輯器或者使用了text打開(kāi)導(dǎo)致文件編碼出現(xiàn)問(wèn)題