【问题标题】:SuiteCRM: Redirect to editview from beforesave hook logicSuiteCRM:从 beforesave 挂钩逻辑重定向到 editview
【发布时间】:2018-12-20 19:37:04
【问题描述】:

从 beforesave 钩子逻辑重定向到编辑视图

如果发生错误,我正在尝试从保存挂钩逻辑之前重定向。它应该重定向到有错误的编辑视图。我正在使用此代码:

function ShowError($errorMsg,$beanID){
    try{
        SugarApplication::appendErrorMessage('An error has been occured: '.$errorMsg);
        $params = array(
            'module'=> 'ad123_Ads',
            'action'=>'EditView', 
            'id' => $beanID
        );
        SugarApplication::redirect('index.php?' . http_build_query($params));
    } catch (Exception $e) {
        echo 'Caught exception: ',  $e, "\n";
    }

}

但问题是重定向后所有字段都未填写。

【问题讨论】:

    标签: php redirect sugarcrm suitecrm


    【解决方案1】:

    其中一个参数是错误的,它必须是record 而不是id

    试试这个:

    try{
             SugarApplication::appendErrorMessage('An error has been occured: '.$errorMsg);
                    $params = array(
                      'module'=> 'ad123_Ads',
                      'action'=>'EditView', 
                      'record' => $beanID
                    );
            SugarApplication::redirect('index.php?' . http_build_query($params));
                }
        catch (Exception $e) {
              echo 'Caught exception: ',  $e, "\n";
            }
    

    我不推荐这种验证,因为您将丢失对表单所做的更改。通常,您必须在提交之前进行 JS 验证,以便用户在提交和丢失所有更改之前有时间更正错误。

    【讨论】:

      【解决方案2】:
      SugarApplication::appendErrorMessage('End Date must be after Start Date');
      $queryParams = array(
                      'module' => $module_name,
                      'action' => $action,
                      'record' => $recordId,
                  );
                  SugarApplication::redirect('index.php?' . http_build_query($queryParams));
      

      这里的 $module_name 是您正在编写逻辑挂钩的模块。 $action 是“EditView”或“DetailView”。 $recordId 是 $bean->id

      您需要了解 before_save 逻辑挂钩不会返回记录 ID,因为它尚未分配。这将使页面返回空白。

      我认为解决这个问题的最好方法是使用 after_save 逻辑钩子。当您将 bean->id 传递给上面的 recordId 时,这将恢复表单上的所有值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-09
        • 2018-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-15
        • 2021-01-05
        相关资源
        最近更新 更多