联系官方销售客服

1835022288

028-61286886

求助 版主:官方研发技术组
获取标题转拼音首字母,如果字段为空,自动获取无法写入数据库?
类型:迅睿CMS 更新时间:2021-12-12 11:17:25

获取标题转拼音首字母,如果字段为空,自动获取

 public function edit() {

   if (IS_POST) {
   $post = \Phpcmf\Service::L('input')->post('data'); 
   $py = \Phpcmf\Service::L('pinyin'); // 拼音转换类
      if(!$post['py']){
         $post['py']=substr($py->result($post['title']), 0, 1);
      }
      }
      
 $this->_Admin_Edit();

 }

打印$post,成功获取到标题拼音首字母,但是无法写入数据库?

回帖
  • 官方研发技术-陈老师
    #1楼    官方研发技术-陈老师
    2021-12-11 15:19:36
    Chrome 0
    改成
    $_POST['py']=substr($py->result($post['title']), 0, 1);
    然后入库时读取这个$_POST['py']变量在写进去存储
  • 张建
    #2楼    张建
    2021-12-11 15:28:55
    Chrome 0
    官方研发技术-陈老师 感谢回答我修改后
    	public function edit() {
    
    	  if (IS_POST) {
    	  $post = \Phpcmf\Service::L('input')->post('data'); 
    	  $py = \Phpcmf\Service::L('pinyin'); // 拼音转换类
          if(!$post['py']){
          $_POST['py']=substr($py->result($post['title']), 0, 1);
          }
            }
    		
    	var_dump($_POST);	
    		
    		$this->_Admin_Edit();
       
    	}
    再次打印出来的var_dump($_POST);依然为空
    image
  • LandQ
    #3楼    LandQ
    2021-12-11 15:47:39
    Chrome 0

    image
    var_dump($_POST); 后,下面应该有 [py] = m 的结果的,你拉下来看看就知道了。
  • 张建
    #4楼    张建
    2021-12-11 16:58:52
    Chrome 0
    官方研发技术-陈老师 然后入库时读取这个$_POST['py']变量在写进去存储这里的变量在写进去存储是要怎么写?
  • 小波工作室--标签和API大师
    #5楼    小波工作室--标签和API大师
    2021-12-11 17:13:38
    Chrome 0
    这个需要把整个控制文件发来看一下
  • LandQ
    #6楼    LandQ
    2021-12-11 18:19:05
    Chrome 0
    张建 如果单单是为了获取拼音首字母可以重写content类函数新建 dayrui/App/News/Models/Content.php<?php namespace Phpcmf\Model\News;class Content extends \Phpcmf\Model\Content{ // 提交之前 public function _content_post_before($id, $data, $old) { // 编辑 if ($id) { $data[1]['py'] = substr(\Phpcmf\Service::L('pinyin')->result($data[1]['title']), 0, 1); } return $data; } }

    可能钩子也行,没试过

    参考文档:《模块内容发布之前》
  • 张建
    #7楼    张建
    2021-12-12 11:17:25
    Chrome 0
     $_POST['data']['py']=substr($py->result($post['title']), 0, 1);
    最终的解决是
     $_POST['data']['py']