webman 异常处理 怎么让他渲染一个指定模板

a178251115

想自己写一个指定模板来渲染,截图
像这样的,内容 我可以自定义,不知道怎么实现,能帮忙帮忙吗?感激不尽

1680 5 0
5个回答

li914

异常拦截处理,进行返回 异常处理

  • a178251115 2022-05-12

    我测试了,public function render(Request $request, Throwable $e) : Response; 这个render 方法里用view() 不出来

li914

截图

截图

测试可以正常返回模板啊,显示正常

  • a178251115 2022-05-12

    我想传数据进来,不知道怎么搞

  • a178251115 2022-05-12

    就是渲染的时候,把数据传到模板里面,显示

  • li914 2022-05-12

    你需要看一下 文档信息 视图处理: https://www.workerman.net/doc/webman/view.html

  • a178251115 2022-05-12

    不是视图的问题,是异常里面我要接受数据,我不知道怎么接受数据

  • a178251115 2022-05-12

    public function render(Request $request, Throwable $e) : Response; 找个方法就结束了,在里面view 渲染模板,但是我找个render方法获取不到我通过throw 异常传过来的数据,应该是我不知道怎么弄

  • li914 2022-05-12

    异常接受的信息是字符串,你传递了数组对象

li914

截图

文档上是有的

  • a178251115 2022-05-12

    $response = ['code'=>1,'msg'=>'请重新登录'];

       throw new Exception($response);
  • a178251115 2022-05-12

    我想这样把数据渲染到异常的view 模板上,

  • a178251115 2022-05-12

    但是我在render 找个方法里面获取不到我传的数组

  • a178251115 2022-05-12

    完整的应该是:$response = ['code'=>1,'msg'=>'请重新登录'];

       throw new Exception($response);

    然后我在
    public function render(Request $request, Throwable $e) : Response;
    {
    view('error.tpl',['data‘=>$response]); //$response 是我throw 传过来的数据,
    }
    我不知道怎么获取这个数据

  • li914 2022-05-12

    不要直接传递数组信息到异常中,只接受字符串信息的

li914

截图
截图
截图

  • a178251115 2022-05-12

    谢谢,我应该可以传json 字符串过来,我试试,谢谢谢,太感谢了,搞了2天了

  • li914 2022-05-12

    如果想传递数组,需要自己自定义一个异常类来做

latin
$e = new \Exception('测试异常');
$e->data = [1,2,3];
throw $e;
public function render(Request $request, Throwable $e) : Response;
{
    view('error.tpl',['data'=>$e->data]);
}

这个思路应该也可以

  • li914 2022-05-12

    测试了一下,可以拿到数据,好像这样子又会引起另一个异常 ErrorException: Undefined property: TypeError::$data in

  • a178251115 2022-05-12

    我还没搞出来

年代过于久远,无法发表回答
🔝