福州網站建設>網站新聞>thinkphp6專區

        [江湖救急]tp6模型主鍵id為非自增字符串,save保存不成功

        發布日期:2022-11-24瀏覽次數:414 來源:福州網站建設 標簽: thinkPHP6 模型保存數據 主鍵非自增

        忽然發現一個問題,模型主鍵為非自增的字符串類型(有時候主鍵不想自增),通過模型的save保存數據不成功(也沒有自己開啟事務),也不報錯(日志打印了insert into語句,數據庫里面沒有數據),用Db::name('demo')->insert($data)可以正常保存。
        controller示例代碼如下,數據庫為pgsql,環境php8.1:
        $demo = new Demo;
        $demo->id = Utils::create_uuid();//生成UUID
        $demo->title = "標題";
        $demo->name = "名稱";
        $demo->status = 0;
        $rs = $demo->save();
        Log::debug("save rs:" . $rs);
        日志:[2022-09-27T11:16:00+08:00][sql] CONNECT:[ UseTime:0.006843s ] pgsql:dbname=votedb;host=127.0.0.1;port=5432
        [2022-09-27T11:16:00+08:00][sql] select fields_name as "field",fields_type as "type",fields_not_null as "null",fields_key_name as "key",fields_default as "default",fields_default as "extra" from table_msg('demo'); [ RunTime:0.013151s ]
        [2022-09-27T11:16:00+08:00][sql] INSERT INTO demo (id , title , name , status , create_time , update_time) VALUES ('9aafe29a-2e9a-4607-859e-5db97346cc81' , '標題' , '名稱' , 0 , '2022-09-27 11:16:00.703800' , '2022-09-27 11:16:00.703809') [ RunTime:0.000406s ]
        [2022-09-27T11:16:00+08:00][debug] save rs:1
        難道通過模型保存數據主鍵必須是自增嗎?百思不得其解

        以上是由福州網站建設的小編為你分享了"[江湖救急]tp6模型主鍵id為非自增字符串,save保存不成功"文章,如果你在這方面有什么問題,隨時聯系我們

        網友評論

        • kuxia 11月24日

          建議你弄個自增的id 然后你的另外一個用uuid來。規范建表

        • SVortex 11月23日

          唉,項目一直出問題,查來查去發現是這個問題。非要自增主鍵才能使用save未免有點智障,但是確實沒從手冊里找到解決方案。

        thinkphp6專區有關的文章
        與標簽 thinkPHP6 模型保存數據 主鍵非自增 有關的文章
        如果您有什么問題,歡迎咨詢我們客服! 點擊QQ咨詢