日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php唯一性查询,ThinkPHP5.0数据更新验证唯一性怎么验证。

發(fā)布時間:2025/4/17 php 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php唯一性查询,ThinkPHP5.0数据更新验证唯一性怎么验证。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題應(yīng)該就是更新時的唯一性判定是要排除自身的。

我記得看過tp5驗證這塊的代碼,要是單獨在valide驗證器類里是實現(xiàn)不了的,因為這個類里沒找到怎么獲取傳遞過來的參數(shù)。但是在controller中可以實現(xiàn),但文檔中根本沒有細(xì)說,我在他們官方文檔下面的評論中有具體的怎么實現(xiàn)的代碼,可以參考下,或者幫忙貼過來。

自己貼過來吧:

文檔太簡陋了,還要看源碼才行,'name' => 'unique:user,status=1&account='.$data['account'],這種的只能放在controller中,自己來定義rule和message,在單獨的validate類中無法將相關(guān)的值傳遞過去。

規(guī)則是:unique:【模型類名(或表名)】,【要驗證的字段(或者包含=號或者包含^號,但是必須把本身的條件加入,別以為前面有name了就不把name本身加進去了)】,【要排除的字段】,【主鍵(可不填)】

示例:

$id = $this->request->post('id');

$shopId = session('shop_id');

$name = $this->request->post('name');

$sort = $this->request->post('sort', 0, 'intval');

$postData = [

'name' => $name,

'sort' => $sort

];

$rule = [

'name' => 'require|unique:ArticleCategory,shop_id=' . $shopId . '&name=' . $name,//名稱

'sort' => 'number'

];

$message = [

'name.require' => '分類名稱必須填寫',

'name.unique' => '分類名稱已存在',

'sort.number' => '排序必須填寫整數(shù)',

];

$validate = new Validate($rule, $message);

if (!empty($id)) {

$validate->scene('edit',

[

'sort',

'name' => 'require|unique:ArticleCategory,shop_id=' . $shopId . '&name=' . $name . ',' . $id

]);

$validateRes = $validate->scene('edit')->check($postData);

} else {

$validate->scene('add', ['sort', 'name']);

$validateRes = $validate->scene('add')->check($postData);

}

if (true !== $validateRes) {

$data['msg'] = $validate->getError();

return json($data);

}

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的php唯一性查询,ThinkPHP5.0数据更新验证唯一性怎么验证。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。