推荐 最新
你可以的拿捏了

在thinkphp6中使用leftJoin时,怎么使用REPLACE?

entry_in表里面的workID字段是这样的“JP20230801”,在work表里面的workID是20230801, 看了下thinkphp6的手册,发现join方法不支持闭包查询。 这样的话,使用join的时候,怎么把JP去掉? $res->leftJoin('work', 'work.workID = REPLACE(entry_in.workID, "JP", "entry_in.workID")')->where('work.customer_id',$customer_id); 这样会报错

13
1
0
浏览量311
花影流年

验证写在controller还是model里?

之前团队留下的模型代码都是这样的: public function getcount($where){//$where是数组,严格对应DB字段! if(!empty($where)){ $db->where($where); } $db->from($tablename); return $db->count_all_results(); } public function edit($tid,$data){//$data是数组,严格对应DB字段! $db->where('tid', $tid); return $db->update($tablename, $data); } 当我在控制器里调用MODEL的时候,要严格按照数据库schema来拼装参数。 MODEL里这样写这样的纯粹的增删改查有什么优点? 验证部分究竟应该放在哪里比较好? 请阐明其中的道理和厉害关系。 之前可能有人看的太快导致的误解,上述代码的model里面那个empty并不算真的判断,关于$where参数,是需要严格按照数据库对应的字段拼装,而model里并没有任何判断,严重依赖控制器喂给它正确的参数。 项目经理铁定要求在控制器处理验证,所以现在的控制器里有数量可观的巨型函数(需要调用model的地方都超过150行了),而且格式基本近似。 举个例子,现在的情况是: view提交表单到controller,在那里验证表单,呼叫model,并为model拼装数组参数(如同上面代码里那样)。 看到后来新的答案里有些说的情况比较模糊,比如“复杂逻辑”这样还是没法明确。所以,我再细化一下问题: 现在的model里仅仅是转发了一下sql的增删改查的基本操作,在控制器里调用这些model的时候,我必须严格根据数据库里的字段名来拼装$data数组,这就基本等同于没有model,还不如控制器里直接拼sql算了。

1
1
0
浏览量221
我是张工你呢

如何在 ThinkPHP8 视图文件中正确处理空值字段并避免报错?

thinkphp8在视图文件使用{volist}循环输出数据库的数据,https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/877d0643206c7504ff8600b9d3c9e72f.png 其中一条数据的字段szx的值在数据库为空,输出时报错:https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/90f7ec59725d62ce8e80c8a7943a2ea1.png,应该怎么处理,好像是由于php8不赞成将null传递给字符串类型的参数,怎样才能把这条含有空值字段的数据输出出来呢 试着把{$v.szx}改成{$v.szx|raw},关闭htmlentities()的转义输出,仍然是提示这个错误

0
1
0
浏览量216
花影流年

如何直接点击lumen的路由的控制器跳转到相关文件?

$router->group(['namespace'=>'\App\Http\Controllers','prefix' => 'api'], function () use ($router) { $router->post('register', 'UserController@register'); $router->post('login', 'UserController@login'); $router->post('info', 'UserController@info'); $router->post('logout', 'UserController@logout'); }); laravel的路由可以使用Route::get('/user', [UserController::class, 'index']);

1
1
0
浏览量127
PunkMaccccc

thinkphp5 相同数据取最新一条的时间 如何分页?

这个表里比如有多个userid,每次登录系统都会记录一个登录时间,现在在报表中要显示,每个userid对应最新的登录时间,这个还要分页。有什么办法可以现实吗? Db::name("log")->order("created","asc")->group("userid")->paginate(10) 我现在这样写的话,是没法取到最新时间的,而且分页的排序也会乱掉

0
1
0
浏览量187
花影流年

laravel 如何在不使用sanctum中间件在控制器中获取用户信息?

我有一个api,需要在控制器中获取用户信息 这个api需要在登录 或者 不登录的情况下都能访问 如果我不加上 auth:sanctum 中间件则无法通过Auth::check()来验证用户是否登录 没有加上中间件 auth:sanctum , Auth::check() 方法始终返回的是false 我想在控制器中来验证用户信息而不是在中间件中验证直接返回401 望大佬解答

0
1
0
浏览量158
世界唯一的

nginx root alias求解?

背景: «访问 a.com/getSetting 能正常返回json数据(a.com用的thinkphp6) nginx 映射到www/a.com/public» 问题: «b.com 默认是映射到www/b.com 想实现访问 b.com/api/getSetting 实现 a.com/getSetting 的效果,映射到www/a.com/public,»

0
1
0
浏览量15
ApplePro

thinkcmf插件类不存在的问题?

有一个thinkcmf项目,但是我用的虚拟主机,所以到目录做了一些调整: 如图:我把thinkcmf原目录中的public放到了WEB里,其它的放到了Backup里面, "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/4375dac7a3ae48562fb929deb9c9052b.png) 然后修改了index.php文件的CMF_ROOT "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/9adf1884e09fcd1e9a5f7f4e17fe779e.png) 然后项目正常运行了, 但是有一个地方不行,就是“插件” "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/b1771149bf1ea3079e5aa90db541c410.png) 目录下的文件明明存在,确提示类不存在,是我路径弄的不对?还是插件的路径需要设置?还是什么 ?有人遇到过吗? "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/98995deb5890d65b349c41972c72937f.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/ede8b14bc89553763d70215aa22ae4bc.png) 补充:原来的目录结构是这样的,plugins在public下面,网站目录是haili,运行目录是public "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241207/362bf7e7f59f56cd360914ee018601b3.png)

0
1
0
浏览量13